[
https://issues.apache.org/jira/browse/KUDU-3780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18089731#comment-18089731
]
ASF subversion and git services commented on KUDU-3780:
-------------------------------------------------------
Commit faec34f53d4c9dd1e3a6dd2b7314d2fc7aadff6c in kudu's branch
refs/heads/master from Alexey Serbin
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=faec34f53 ]
KUDU-3780: introduce KUDU_CLIENT_ONLY build option
This changelist introduces a shortcut to build only the kudu_client C++
library and a subset of 3rd-party components required by dependency.
The docs/installation.adoc has been updated accordingly, and below
is an excerpt:
To build a subset of 3rd-party components, specify 'client_only'
command-line argument to the build-if-necessary.sh script:
$ ./thirdparty/build-if-necessary.sh client_only
With the subset of the 3rd-party components built, run cmake specifying
-DKUDU_CLIENT_ONLY=1 in the build sub-directory:
$ ../../thirdparty/installed/common/bin/cmake \
-DCMAKE_BUILD_TYPE=release \
-DKUDU_CLIENT_ONLY=1 \
../..
And then run make (maybe, adding -j<N> to match number of available
CPU cores), specifying 'kudu_client_exported' and 'kudu_client' targets:
$ make kudu_client kudu_client_exported
NOTE:
The original approach to downloading 3rd-party components' dist
tarballs is quite simplistic, and it leads to downloading of _all_
of them regardless of the subset of the components that are actually
being built for the selected 'client_only' dependency group. This
changelist focuses on reducing build times of 3rd-party components
for a particular client-only use case. A follow-up changelist might
take care of the selective downloading of dist tarballs.
Change-Id: Ibc8b021e03808a3ca8da6cfff617bc913772f271
Reviewed-on: http://gerrit.cloudera.org:8080/24435
Tested-by: Alexey Serbin <[email protected]>
Reviewed-by: Michael Smith <[email protected]>
Reviewed-by: Marton Greber <[email protected]>
> Add an option to build libkudu_client C++ library and its 3rd-party
> dependencies only
> -------------------------------------------------------------------------------------
>
> Key: KUDU-3780
> URL: https://issues.apache.org/jira/browse/KUDU-3780
> Project: Kudu
> Issue Type: Improvement
> Components: build
> Reporter: Alexey Serbin
> Priority: Major
>
> At the time of writing, the regular build flow assumes building all the
> 3rd-party components to produce libkudu_client.so bits. For projects like
> Impala, libkudu_client.so is the only required artifact, and they need
> building it with a custom/specific toolchain, so sharing pre-built 3rd-party
> bits built a standard way it's done in Kudu isn't a viable option (i.e.
> Impala needs Kudu's 3rd-party components built with Impala-specific
> toolchain).
> To reduce build times for libkudu_client as an artifact needed by Impala, it
> makes sense to provide a way building only 3rd-party components needed for
> libkudu_client (at least, for DEBUG and RELEASE build configurations). That
> might be implemented as a change in build scripts' behavior when a particular
> environment variable specified (e.g., {{KUDU_CLIENT_ONLY}}).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)