You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kudu.apache.org by "Adar Dembo (Code Review)" <ge...@ip-10-146-233-104.ec2.internal> on 2016/01/27 02:18:46 UTC

[kudu-CR] cmake: blessed build layout fixes and improvements

Hello Todd Lipcon,

I'd like you to do a code review.  Please visit

    http://gerrit.cloudera.org:8080/1914

to review the following change.

Change subject: cmake: blessed build layout fixes and improvements
......................................................................

cmake: blessed build layout fixes and improvements

This patch improves the experience of out-of-tree builds by relying on the
idea of a "blessed" build layout. To summarize, despite now having the
flexibility to place build directories anywhere, we will still encourage
developers to lay them out in a particular way. All scripts and tests will
work well this way, and we'll make only a best effort for them to work
otherwise.

The blessed build layout is where all build directories are subdirectories
of a main build/ subdirectory, itself found in the root directory of the
tree. For example:
- kudu/build/      [unused]
- kudu/build/debug [build directory for debug build]
- kudu/build/asan  [build directory for address sanitizer build]
- kudu/build/tsan  [build directory for thread sanitizer build]

Changes of note:
1. If using the blessed build layout, build/latest symlinks to the last
   created build subdirectory.
2. To avoid the confusion of build output in build/latest/latest, binaries
   go in bin/ and libraries in lib/. CMake is smart enough to make the
   corresponding rpath changes to the binaries automatically.
3. Eclipse instructions note that the blessed layout doesn't work properly.
4. Various end-to-end scripts (make_site.sh, tpch.sh, etc.) use the
   appropriate subdirectory in build/, and are more lenient w.r.t. reusing
   existing build output.
5. Java unit tests require no hand-holding for the blessed layout.
6. Python unit tests require just KUDU_HOME for the blessed layout.

Change-Id: I61b4db5a87728d4f3ce9bc13f36d448dbd503c5c
---
M CMakeLists.txt
M README.adoc
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
M docs/support/scripts/make_docs.sh
M docs/support/scripts/make_site.sh
M java/README.md
M java/kudu-client/src/test/java/org/kududb/client/TestUtils.java
M java/kudu-csd/generate_mdl.py
M python/kudu/tests/common.py
M python/setup.py
M src/kudu/benchmarks/bin/parse_rpc_bench.sh
M src/kudu/client/CMakeLists.txt
M src/kudu/client/client_samples-test.sh
M src/kudu/client/client_symbol-test.sh
M src/kudu/codegen/CMakeLists.txt
M src/kudu/integration-tests/external_mini_cluster.h
M src/kudu/scripts/benchmarks.sh
M src/kudu/scripts/tpch.sh
M src/kudu/util/CMakeLists.txt
20 files changed, 133 insertions(+), 94 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/14/1914/1
-- 
To view, visit http://gerrit.cloudera.org:8080/1914
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I61b4db5a87728d4f3ce9bc13f36d448dbd503c5c
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>