Bug: Cleanup the build directory structure
Status: Resolved | Priority: Minor | Resolution: Fixed
Created: 16/Jun/20 21:54

Currently all the build binaries (along with shared-libs and dependencies) are installed in the same current build directory. That is super messy to work with. It looks something like this

{noformat}
.
├── apachehbase-build
├── apachehbase-download
├── apachehbase-src
├── append-test
├── async-batch-rpc-retrying-test
├── async-rpc-retrying-test
├── build
├── bytes-util-test
├── cell-test
├── client-deserializer-test
├── client-serializer-test
├── client-test
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── concurrent-map-test
├── configuration-test
├── connection-pool-test
├── CTestTestfile.cmake
├── delete-test
├── dependencies
├── exception-test
├── facebook-folly-proj-prefix
├── facebook-wangle-proj-prefix
├── filter-test
├── get-test
├── hbase-configuration-test
├── increment-test
├── libhbaseclient.a
├── libhbaseclient.so
├── libtestutil.a
├── load-client
├── location-cache-retry-test
├── location-cache-test
├── Makefile
├── Protobuf-build
├── Protobuf-download
├── Protobuf-src
├── put-test
├── region-info-deserializer-test
├── request-converter-test
├── result-test
├── rpc-test
├── scanner-test
├── scan-result-cache-test
├── scan-test
├── server-name-test
├── simple-client
├── table-name-test
├── target
├── Testing
├── time-range-test
├── user-util-test
├── zk-deserializer-test
├── zk-util-test
└── ZooKeeper-prefix
{noformat}

I have a patch that switches the build layout to the following (logically grouped). Very clean and easy to work with.

{noformat}
.
├── bin
├── build
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── CTestTestfile.cmake
├── dependencies
├── libs
├── Makefile
└── tests
{noformat}

With Depth 2 (to show the layout better)

{noformat}

├── bin
│   └── examples
├── build
│   └── test-data
├── CMakeCache.txt
├── CMakeFiles
│   ├── 3.10.2
│   ├── append-test.dir
│   ├── async-batch-rpc-retrying-test.dir
│   ├── async-rpc-retrying-test.dir
│   ├── bytes-util-test.dir
│   ├── cell-test.dir
│   ├── CheckLibraryExists
│   ├── client-deserializer-test.dir
│   ├── client-serializer-test.dir
│   ├── client-test.dir
│   ├── cmake.check_cache
│   ├── CMakeDirectoryInformation.cmake
│   ├── CMakeError.log
│   ├── CMakeOutput.log
│   ├── CMakeRuleHashes.txt
│   ├── CMakeTmp
│   ├── concurrent-map-test.dir
│   ├── configuration-test.dir
│   ├── connection-pool-test.dir
│   ├── delete-test.dir
│   ├── exception-test.dir
│   ├── facebook-folly-proj-complete
│   ├── facebook-folly-proj.dir
│   ├── facebook-wangle-proj-complete
│   ├── facebook-wangle-proj.dir
│   ├── feature_tests.bin
│   ├── feature_tests.cxx
│   ├── filter-test.dir
│   ├── get-test.dir
│   ├── hbase
│   ├── hbaseclient-shared.dir
│   ├── hbaseclient-static.dir
│   ├── hbase-configuration-test.dir
│   ├── increment-test.dir
│   ├── linter.dir
│   ├── load-client.dir
│   ├── location-cache-retry-test.dir
│   ├── location-cache-test.dir
│   ├── Makefile2
│   ├── Makefile.cmake
│   ├── progress.marks
│   ├── put-test.dir
│   ├── region-info-deserializer-test.dir
│   ├── request-converter-test.dir
│   ├── result-test.dir
│   ├── rpc-test.dir
│   ├── scanner-test.dir
│   ├── scan-result-cache-test.dir
│   ├── scan-test.dir
│   ├── server-name-test.dir
│   ├── simple-client.dir
│   ├── table-name-test.dir
│   ├── TargetDirectories.txt
│   ├── testutil.dir
│   ├── time-range-test.dir
│   ├── user-util-test.dir
│   ├── zk-deserializer-test.dir
│   ├── zk-util-test.dir
│   ├── ZooKeeper-complete
│   └── ZooKeeper.dir
├── cmake_install.cmake
├── CTestTestfile.cmake
├── dependencies
│   ├── apache-hbase-build
│   ├── apache-hbase-download
│   ├── apache-hbase-src
│   ├── facebook-folly-proj-install
│   ├── facebook-folly-proj-src
│   ├── facebook-wangle-proj-download
│   ├── facebook-wangle-proj-install
│   ├── facebook-wangle-proj-src
│   ├── Protobuf-build
│   ├── Protobuf-download
│   ├── Protobuf-src
│   ├── src
│   ├── tmp
│   ├── zookeeper-install
│   └── zookeeper-src
├── libs
│   ├── libhbaseclient.a
│   ├── libhbaseclient.so
│   └── libtestutil.a
├── Makefile
└── tests
    ├── append-test
    ├── async-batch-rpc-retrying-test
    ├── async-rpc-retrying-test
    ├── bytes-util-test
    ├── cell-test
    ├── client-deserializer-test
    ├── client-serializer-test
    ├── client-test
    ├── concurrent-map-test
    ├── configuration-test
    ├── connection-pool-test
    ├── delete-test
    ├── exception-test
    ├── filter-test
    ├── get-test
    ├── hbase-configuration-test
    ├── increment-test
    ├── location-cache-retry-test
    ├── location-cache-test
    ├── put-test
    ├── region-info-deserializer-test
    ├── request-converter-test
    ├── result-test
    ├── rpc-test
    ├── scanner-test
    ├── scan-result-cache-test
    ├── scan-test
    ├── server-name-test
    ├── table-name-test
    ├── time-range-test
    ├── user-util-test
    ├── zk-deserializer-
{noformat}