[ 
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)

Reply via email to