You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bh...@apache.org on 2020/06/17 19:33:42 UTC
[hbase-native-client] branch master updated: HBASE-24575: Cleanup
the build directory structure (#9)
This is an automated email from the ASF dual-hosted git repository.
bharathv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase-native-client.git
The following commit(s) were added to refs/heads/master by this push:
new 599ae16 HBASE-24575: Cleanup the build directory structure (#9)
599ae16 is described below
commit 599ae165d48d63a7abbe2f91cdf21666ebc14465
Author: Bharath Vissapragada <bh...@apache.org>
AuthorDate: Wed Jun 17 12:33:37 2020 -0700
HBASE-24575: Cleanup the build directory structure (#9)
Switches the build layout to the following. Logically groups
all the build artifacts to make it easy to work with.
.
├── bin
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── CTestTestfile.cmake
├── dependencies
├── libs
├── Makefile
└── tests
Signed-off-by: Marc Parisi <ph...@apache.org>
---
CMakeLists.txt | 153 +++++++++++++++++++++---------------------
cmake/BuildTests.cmake | 10 +--
cmake/DownloadFolly.cmake | 35 +++++-----
cmake/DownloadWangle.cmake | 40 +++++------
cmake/DownloadZookeeper.cmake | 34 +++++-----
5 files changed, 132 insertions(+), 140 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f68567..ef9bbd4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,17 +43,16 @@ option(BUILD_HBASE "Build HBASE_HOME path if it is provided" OFF)
## object files. These are defined here as they will be used throughout
## the cmake modules.
if (WIN32)
- set(BYPRODUCT_PREFIX "" CACHE STRING "" FORCE)
- set(BYPRODUCT_SHARED_SUFFIX ".lib" CACHE STRING "" FORCE)
- set(BYPRODUCT_SUFFIX ".lib" CACHE STRING "" FORCE)
- set(BUILD_ARGS " -GVisual Studio 15 2017")
+ set(BYPRODUCT_PREFIX "" CACHE STRING "" FORCE)
+ set(BYPRODUCT_SHARED_SUFFIX ".lib" CACHE STRING "" FORCE)
+ set(BYPRODUCT_SUFFIX ".lib" CACHE STRING "" FORCE)
+ set(BUILD_ARGS " -GVisual Studio 15 2017")
else()
- set(BYPRODUCT_PREFIX "lib" CACHE STRING "" FORCE)
- set(BYPRODUCT_SHARED_SUFFIX ".so" CACHE STRING "" FORCE)
- set(BYPRODUCT_SUFFIX ".a" CACHE STRING "" FORCE)
+ set(BYPRODUCT_PREFIX "lib" CACHE STRING "" FORCE)
+ set(BYPRODUCT_SHARED_SUFFIX ".so" CACHE STRING "" FORCE)
+ set(BYPRODUCT_SUFFIX ".a" CACHE STRING "" FORCE)
endif()
-
######### Includes
## include the Protobuf generation code
include(ProtobufGen)
@@ -61,32 +60,33 @@ include(DownloadFolly)
include(DownloadWangle)
include(DownloadZookeeper)
+set(PROJECT_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/dependencies")
+
if (DOWNLOAD_DEPENDENCIES)
-
- ## we want to find the system protoc
- download_project(PROJ Protobuf IS_AUTOGEN GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git" GIT_TAG "3.5.1.1")
+ ## we want to find the system protoc
+ download_project(PROJ Protobuf PREFIX "${PROJECT_PREFIX}" IS_AUTOGEN GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git" GIT_TAG "3.5.1.1")
- set(PROTOBUF_DIR "${Protobuf_BINARY_DIR}" CACHE STRING "" FORCE)
+ set(PROTOBUF_DIR "${Protobuf_BINARY_DIR}" CACHE STRING "" FORCE)
- add_library(Protobuf STATIC IMPORTED)
- set_target_properties(Protobuf PROPERTIES IMPORTED_LOCATION "${Protobuf_BINARY_DIR}/lib/libprotobuf.a" )
- set(PROTOBUF_LIBS "${Protobuf_BINARY_DIR}/lib/libprotobuf.a" "${Protobuf_BINARY_DIR}/lib/libprotoc.a" CACHE STRING "" FORCE)
- set(PROTOBUF_INCLUDE_DIRS "${Protobuf_BINARY_DIR}/include" CACHE STRING "" FORCE)
- add_dependencies(Protobuf Protobuf-download)
- set(PROTOBUF_FOUND TRUE CACHE STRING "" FORCE)
+ add_library(Protobuf STATIC IMPORTED)
+ set_target_properties(Protobuf PROPERTIES IMPORTED_LOCATION "${Protobuf_BINARY_DIR}/lib/libprotobuf.a" )
+ set(PROTOBUF_LIBS "${Protobuf_BINARY_DIR}/lib/libprotobuf.a" "${Protobuf_BINARY_DIR}/lib/libprotoc.a" CACHE STRING "" FORCE)
+ set(PROTOBUF_INCLUDE_DIRS "${Protobuf_BINARY_DIR}/include" CACHE STRING "" FORCE)
+ add_dependencies(Protobuf "${PROJECT_PREFIX}/Protobuf-download")
+ set(PROTOBUF_FOUND TRUE CACHE STRING "" FORCE)
- set(PROTOBUF_PROTOC_EXECUTABLE "${Protobuf_BINARY_DIR}/bin/protoc" CACHE STRING "" FORCE)
- ## Add CMAKE_MODULE_PATHS
+ set(PROTOBUF_PROTOC_EXECUTABLE "${Protobuf_BINARY_DIR}/bin/protoc" CACHE STRING "" FORCE)
+ ## Add CMAKE_MODULE_PATHS
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/zookeeper/local")
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/protobuf/local")
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/folly/local")
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/wangle/local")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/zookeeper/local")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/protobuf/local")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/folly/local")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/wangle/local")
else()
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/zookeeper/system")
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/folly/system")
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/wangle/system")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/zookeeper/system")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/folly/system")
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/wangle/system")
endif(DOWNLOAD_DEPENDENCIES)
## Build Apache HBase components that are necessary for this project
@@ -95,24 +95,24 @@ find_package(Java REQUIRED)
find_package(Maven REQUIRED)
if( NOT HBASE_HOME )
- if (DOWNLOAD_DEPENDENCIES)
- ## Download Apache HBase, and build hbase-common so that we can have a targeted build of version.h
- download_project(PROJ apachehbase IS_MAVEN GIT_REPOSITORY "https://github.com/apache/hbase.git" GIT_TAG "${HBASE_TARGET_TAG}")
- set(JAVA_HBASE_DIR "${CMAKE_CURRENT_BINARY_DIR}/apachehbase-src/")
- else()
- message(FATAL_ERROR "HBASE_HOME must be defined if local dependencies aren't built")
- endif()
+ if (DOWNLOAD_DEPENDENCIES)
+ ## Download Apache HBase, and build hbase-common so that we can have a targeted build of version.h
+ download_project(PROJ apache-hbase PREFIX "${PROJECT_PREFIX}" IS_MAVEN GIT_REPOSITORY "https://github.com/apache/hbase.git" GIT_TAG "${HBASE_TARGET_TAG}")
+ set(JAVA_HBASE_DIR "${PROJECT_PREFIX}/apache-hbase-src/")
+ else()
+ message(FATAL_ERROR "HBASE_HOME must be defined if local dependencies aren't built")
+ endif()
else()
- if (BUILD_HBASE)
- message(STATUS "Building HBase in ${HBASE_HOME}")
- execute_maven(${HBASE_HOME} mvn_output mvn_result)
- if(NOT "${mvn_result}" STREQUAL "0")
- message(FATAL_ERROR "Failed to build HBase. Please provide a valid path with HBASE_HOME")
- endif()
- else()
- message(STATUS "Using supplied HBase path ${HBASE_HOME}")
- endif()
- set(JAVA_HBASE_DIR "${HBASE_HOME}")
+if (BUILD_HBASE)
+ message(STATUS "Building HBase in ${HBASE_HOME}")
+ execute_maven(${HBASE_HOME} mvn_output mvn_result)
+ if(NOT "${mvn_result}" STREQUAL "0")
+ message(FATAL_ERROR "Failed to build HBase. Please provide a valid path with HBASE_HOME")
+ endif()
+ else()
+ message(STATUS "Using supplied HBase path ${HBASE_HOME}")
+ endif()
+ set(JAVA_HBASE_DIR "${HBASE_HOME}")
endif()
include_directories("${JAVA_HBASE_DIR}/hbase-common/target/generated-sources/native/")
@@ -124,15 +124,14 @@ set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
-
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX14)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
elseif(COMPILER_SUPPORTS_CXX0X)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
- message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no c++14 support. Please use a different C++ compiler.")
+ message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no c++14 support. Please use a different C++ compiler.")
endif()
set(HBASE_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/hbase")
@@ -140,24 +139,24 @@ set(HBASE_PROTO_GEN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/hbase/if")
set(HBASE_PROTO_GEN_INC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include/hbase/if")
# Set the right openssl root path
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl/")
+ set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl/")
else()
- set(OPENSSL_ROOT_DIR "/usr/lib/x86_64-linux-gnu")
+ set(OPENSSL_ROOT_DIR "/usr/lib/x86_64-linux-gnu")
endif()
# Include OpenSSL
find_package (OpenSSL REQUIRED)
if (OPENSSL_FOUND)
- include_directories(${OPENSSL_INCLUDE_DIR})
+ include_directories(${OPENSSL_INCLUDE_DIR})
else ()
- message( FATAL_ERROR "OpenSSL was not found. Please install OpenSSL" )
+ message( FATAL_ERROR "OpenSSL was not found. Please install OpenSSL" )
endif (OPENSSL_FOUND)
## Download Facebook Folly and build locally
if (DOWNLOAD_DEPENDENCIES)
- download_folly(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
- download_wangle(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
- download_zookeeper(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+ download_folly(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+ download_wangle(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+ download_zookeeper(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
endif(DOWNLOAD_DEPENDENCIES)
# ensure we have required dependencies
@@ -186,10 +185,10 @@ if (NOT WANGLE_FOUND)
message(FATAL_ERROR "-- Wangle not found")
endif()
if (NOT PROTOBUF_FOUND)
- message(FATAL_ERROR "-- Protocol buffer include directory not found ${PROTOBUF_INCLUDE_DIRS}")
+ message(FATAL_ERROR "-- Protocol buffer include directory not found ${PROTOBUF_INCLUDE_DIRS}")
endif()
if (NOT JNI_FOUND)
- message(FATAL_ERROR "-- JAVA include directory not found")
+ message(FATAL_ERROR "-- JAVA include directory not found")
endif()
### provide the include directories, starting at the base
### and including those from our
@@ -236,13 +235,14 @@ include_directories(${PROTO_HEADER_DIR})
add_library(hbaseclient-static STATIC ${PROTO_SOURCES} ${CLIENT_SRC} ${CONNECTION_SRC} ${EXCEPTION_SRC} ${PROTO_SRC} ${SECURITY_SRC} ${SRDE_SRC} ${UTILS_SRC})
set_target_properties(hbaseclient-static PROPERTIES LINKER_LANGUAGE CXX)
SET_TARGET_PROPERTIES(hbaseclient-static PROPERTIES OUTPUT_NAME hbaseclient CLEAN_DIRECT_OUTPUT 1)
+set_target_properties(hbaseclient-static PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libs")
target_link_libraries(hbaseclient-static ${Boost_LIBRARIES})
target_link_libraries(hbaseclient-static ${SASL_LIBS})
target_link_libraries(hbaseclient-static ${GFLAGS_SHARED_LIB})
target_link_libraries(hbaseclient-static ${KRB5_LIBRARIES})
target_link_libraries(hbaseclient-static ${WANGLE_LIBRARIES})
if (DOWNLOAD_DEPENDENCIES)
- target_link_libraries(hbaseclient-static ${sodium_LIBRARY_RELEASE})
+ target_link_libraries(hbaseclient-static ${sodium_LIBRARY_RELEASE})
endif(DOWNLOAD_DEPENDENCIES)
target_link_libraries(hbaseclient-static ${FOLLY_LIBRARIES})
target_link_libraries(hbaseclient-static ${GLOG_SHARED_LIB})
@@ -257,11 +257,12 @@ add_library(hbaseclient-shared SHARED ${PROTO_SOURCES} ${CLIENT_SRC} ${CONNECTIO
set_target_properties(hbaseclient-shared PROPERTIES LINKER_LANGUAGE CXX)
SET_TARGET_PROPERTIES(hbaseclient-shared PROPERTIES COMPILE_FLAGS " -fPIC")
SET_TARGET_PROPERTIES(hbaseclient-shared PROPERTIES OUTPUT_NAME hbaseclient CLEAN_DIRECT_OUTPUT 1)
+set_target_properties(hbaseclient-shared PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libs")
target_link_libraries(hbaseclient-shared ${PROTOBUF_LIBRARY})
target_link_libraries(hbaseclient-shared ${Boost_LIBRARIES})
target_link_libraries(hbaseclient-shared ${WANGLE_LIBRARIES})
if (DOWNLOAD_DEPENDENCIES)
- target_link_libraries(hbaseclient-shared ${sodium_LIBRARY_RELEASE})
+ target_link_libraries(hbaseclient-shared ${sodium_LIBRARY_RELEASE})
endif(DOWNLOAD_DEPENDENCIES)
target_link_libraries(hbaseclient-shared ${FOLLY_LIBRARIES})
target_link_libraries(hbaseclient-shared ${SASL_LIBS})
@@ -274,7 +275,8 @@ target_link_libraries(hbaseclient-shared ${ZOOKEEPER_LIBRARIES})
target_link_libraries(hbaseclient-shared ${DOUBLE_CONVERSION_LIBRARY})
target_link_libraries(hbaseclient-shared ${CMAKE_DL_LIBS})
add_executable(simple-client "${HBASE_SRC_DIR}/examples/simple-client.cc")
-SET_TARGET_PROPERTIES(simple-client PROPERTIES COMPILE_FLAGS " ")
+set_target_properties(simple-client PROPERTIES COMPILE_FLAGS " ")
+set_target_properties(simple-client PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/examples")
target_link_libraries(simple-client ${PROTOBUF_LIBRARY})
target_link_libraries(simple-client ${Boost_LIBRARIES})
target_link_libraries(simple-client ${SASL_LIBS})
@@ -283,7 +285,8 @@ target_link_libraries(simple-client ${KRB5_LIBRARIES})
target_link_libraries(simple-client ${ZOOKEEPER_LIBRARIES})
target_link_libraries(simple-client hbaseclient-static ${CMAKE_THREAD_LIBS_INIT})
add_executable(load-client "${HBASE_SRC_DIR}/examples/load-client.cc")
-SET_TARGET_PROPERTIES(load-client PROPERTIES COMPILE_FLAGS " ")
+set_target_properties(load-client PROPERTIES COMPILE_FLAGS " ")
+set_target_properties(load-client PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/examples")
target_link_libraries(load-client ${PROTOBUF_LIBRARY})
target_link_libraries(load-client ${Boost_LIBRARIES})
target_link_libraries(load-client ${SASL_LIBS})
@@ -292,11 +295,11 @@ target_link_libraries(load-client ${KRB5_LIBRARIES})
target_link_libraries(load-client ${ZOOKEEPER_LIBRARIES})
target_link_libraries(load-client hbaseclient-static ${CMAKE_THREAD_LIBS_INIT})
if (JNI_FOUND)
- message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
- message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
+ message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
+ message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
endif()
if (NOT SKIP_TESTS)
- include(BuildTests)
+ include(BuildTests)
endif()
## Create a custom target for our linter
add_custom_target(
@@ -304,19 +307,15 @@ add_custom_target(
COMMAND ${CMAKE_SOURCE_DIR}/bin/cpplint.sh)
if (DOWNLOAD_DEPENDENCIES)
- add_dependencies(hbaseclient-static Protobuf)
- add_dependencies(hbaseclient-shared Protobuf)
-
- add_dependencies(facebook-wangle-proj facebook-folly-proj)
- add_dependencies(hbaseclient-static facebook-wangle-proj)
- add_dependencies(hbaseclient-shared facebook-wangle-proj)
-
- add_dependencies(hbaseclient-static zookeeper)
- add_dependencies(hbaseclient-shared zookeeper)
+ add_dependencies(hbaseclient-static Protobuf)
+ add_dependencies(hbaseclient-shared Protobuf)
+ add_dependencies(facebook-wangle-proj facebook-folly-proj)
+ add_dependencies(hbaseclient-static facebook-wangle-proj)
+ add_dependencies(hbaseclient-shared facebook-wangle-proj)
+ add_dependencies(hbaseclient-static zookeeper)
+ add_dependencies(hbaseclient-shared zookeeper)
endif(DOWNLOAD_DEPENDENCIES)
-
-
# Install library headers
include(GNUInstallDirs)
file(GLOB RECURSE HEADERS include/*.h)
@@ -331,12 +330,12 @@ install(TARGETS hbaseclient-shared
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION include/
COMPONENT LIBRARY )
-INSTALL (
+install(
DIRECTORY ${CMAKE_SOURCE_DIR}/include/
DESTINATION include/
FILES_MATCHING PATTERN "*.h*")
# Install pb-generated headers too
-INSTALL (
+install(
DIRECTORY "${CMAKE_BINARY_DIR_GEN}"
DESTINATION include/hbase/if
FILES_MATCHING PATTERN "hbase/if/*.h")
diff --git a/cmake/BuildTests.cmake b/cmake/BuildTests.cmake
index 0b56818..e7b4243 100644
--- a/cmake/BuildTests.cmake
+++ b/cmake/BuildTests.cmake
@@ -28,6 +28,7 @@ MACRO(GETSOURCEFILES result curdir)
ENDMACRO()
find_package(GMock REQUIRED)
add_library(testutil STATIC ${TEST_UTIL})
+set_target_properties(testutil PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/libs")
target_include_directories(testutil PRIVATE BEFORE "include")
target_include_directories(testutil PRIVATE BEFORE "${Java_INCLUDE_DIRS}")
target_include_directories(testutil PRIVATE BEFORE "${JNI_INCLUDE_DIRS}")
@@ -69,10 +70,11 @@ SET(TEST_DIR ${CMAKE_SOURCE_DIR}/src/test)
GETSOURCEFILES(UNIT_TESTS "${TEST_DIR}")
SET(UNIT_TEST_COUNT 0)
FOREACH(testfile ${UNIT_TESTS})
- get_filename_component(testfilename "${testfile}" NAME_WE)
- add_executable("${testfilename}" "${TEST_DIR}/${testfile}")
- createTests("${testfilename}")
+ get_filename_component(testfilename "${testfile}" NAME_WE)
+ add_executable("${testfilename}" "${TEST_DIR}/${testfile}")
+ set_target_properties("${testfilename}" PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/tests")
+ createTests("${testfilename}")
MATH(EXPR UNIT_TEST_COUNT "${UNIT_TEST_COUNT}+1")
- add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
+ add_test(NAME "${testfilename}" COMMAND "${testfilename}" WORKING_DIRECTORY ${TEST_DIR})
ENDFOREACH()
message("-- Finished building ${UNIT_TEST_COUNT} unit test file(s)...")
diff --git a/cmake/DownloadFolly.cmake b/cmake/DownloadFolly.cmake
index 2b43a8e..16f479b 100644
--- a/cmake/DownloadFolly.cmake
+++ b/cmake/DownloadFolly.cmake
@@ -20,23 +20,18 @@
## BUILD_DIR is the build directory, typically 'build'
function(download_folly SOURCE_DIR BUILD_DIR)
-
-
- ExternalProject_Add(
- facebook-folly-proj
- URL "https://github.com/facebook/folly/archive/v2017.09.04.00.tar.gz"
- #GIT_REPOSITORY "https://github.com/facebook/folly.git"
- #GIT_TAG "v2017.09.04.00"
- SOURCE_DIR "${BUILD_DIR}/dependencies/facebook-folly-proj-src"
- BINARY_DIR ${BUILD_DIR}/dependencies/facebook-folly-proj-src/folly
- CONFIGURE_COMMAND autoreconf -ivf
- COMMAND ./configure --prefix=${BUILD_DIR}/dependencies/facebook-folly-proj-install
- "CFLAGS=-fPIC -lboost_context -lboost_coroutine -ldl" ## this version of folly does not support cmake so we must pass args manually
- "CXXFLAGS=${CMAKE_CXX_FLAGS} -fPIC -lboost_context -lboost_coroutine -ldl" ## this version of folly does not support cmake so we must pass args manually
- UPDATE_COMMAND ""
- )
-
-
- set(FOLLY_ROOT_DIR "${BUILD_DIR}/dependencies/facebook-folly-proj-install" CACHE STRING "" FORCE)
-
-endfunction(download_folly)
\ No newline at end of file
+ ExternalProject_Add(
+ facebook-folly-proj
+ # TODO: Source version information from cmake file.
+ URL "https://github.com/facebook/folly/archive/v2017.09.04.00.tar.gz"
+ PREFIX "${BUILD_DIR}/dependencies"
+ SOURCE_DIR "${BUILD_DIR}/dependencies/facebook-folly-proj-src"
+ BINARY_DIR ${BUILD_DIR}/dependencies/facebook-folly-proj-src/folly
+ CONFIGURE_COMMAND autoreconf -ivf
+ COMMAND ./configure --prefix=${BUILD_DIR}/dependencies/facebook-folly-proj-install
+ "CFLAGS=-fPIC -lboost_context -lboost_coroutine -ldl" ## this version of folly does not support cmake so we must pass args manually
+ "CXXFLAGS=${CMAKE_CXX_FLAGS} -fPIC -lboost_context -lboost_coroutine -ldl" ## this version of folly does not support cmake so we must pass args manually
+ UPDATE_COMMAND ""
+ )
+ set(FOLLY_ROOT_DIR "${BUILD_DIR}/dependencies/facebook-folly-proj-install" CACHE STRING "" FORCE)
+endfunction(download_folly)
diff --git a/cmake/DownloadWangle.cmake b/cmake/DownloadWangle.cmake
index 679d9d6..1bfff5f 100644
--- a/cmake/DownloadWangle.cmake
+++ b/cmake/DownloadWangle.cmake
@@ -20,24 +20,24 @@
## BINARY_DIR is the build directory, typically 'build'
function(download_wangle SOURCE_DIR BUILD_DIR)
-
- if (DOWNLOAD_DEPENDENCIES)
- SET (PATCH_FOLLY ${CMAKE_COMMAND} -E copy
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake/folly/local/FindFolly.cmake" ${BUILD_DIR}/facebook-wangle-proj-prefix/src/facebook-wangle-proj/wangle/cmake )
- else()
- SET (PATCH_FOLLY "")
- endif()
-
- ExternalProject_Add(
- facebook-wangle-proj
- URL "https://github.com/facebook/wangle/archive/v2017.09.04.00.tar.gz"
- PATCH_COMMAND ${PATCH_FOLLY}
- INSTALL_DIR "${BUILD_DIR}/dependencies/facebook-wangle-proj-install"
- CONFIGURE_COMMAND ${CMAKE_COMMAND} -DBUILD_EXAMPLES=OFF -DCMAKE_CROSSCOMPILING=ON -DBUILD_TESTS=OFF -DFOLLY_ROOT_DIR=${FOLLY_ROOT_DIR} -DCMAKE_INSTALL_PREFIX:PATH=${BUILD_DIR}/dependencies/facebook-wangle-proj-install
- ${BUILD_DIR}/facebook-wangle-proj-prefix/src/facebook-wangle-proj/wangle # Tell CMake to use subdirectory as source.
- )
-
-
- set(WANGLE_ROOT_DIR "${BUILD_DIR}/dependencies/facebook-wangle-proj-install" CACHE STRING "" FORCE)
+ set(WANGLE_DOWNLOAD_DIR "${BUILD_DIR}/dependencies/facebook-wangle-proj-download")
+ set(WANGLE_SOURCE_DIR "${BUILD_DIR}/dependencies/facebook-wangle-proj-src")
+ set(WANGLE_INSTALL_DIR "${BUILD_DIR}/dependencies/facebook-wangle-proj-install")
+ if (DOWNLOAD_DEPENDENCIES)
+ set(PATCH_FOLLY ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/cmake/folly/local/FindFolly.cmake" "${WANGLE_SOURCE_DIR}/wangle/cmake")
+ else()
+ set(PATCH_FOLLY "")
+ endif()
-endfunction(download_wangle)
\ No newline at end of file
+ ExternalProject_Add(
+ facebook-wangle-proj
+ URL "https://github.com/facebook/wangle/archive/v2017.09.04.00.tar.gz"
+ PREFIX "${BUILD_DIR}/dependencies"
+ DOWNLOAD_DIR ${WANGLE_DOWNLOAD_DIR}
+ SOURCE_DIR ${WANGLE_SOURCE_DIR}
+ PATCH_COMMAND ${PATCH_FOLLY}
+ INSTALL_DIR ${WANGLE_INSTALL_DIR}
+ CONFIGURE_COMMAND ${CMAKE_COMMAND} -DBUILD_EXAMPLES=OFF -DCMAKE_CROSSCOMPILING=ON -DBUILD_TESTS=OFF -DFOLLY_ROOT_DIR=${FOLLY_ROOT_DIR} -DCMAKE_INSTALL_PREFIX:PATH=${WANGLE_INSTALL_DIR} "${WANGLE_SOURCE_DIR}/wangle" # Tell CMake to use subdirectory as source.
+ )
+ set(WANGLE_ROOT_DIR ${WANGLE_INSTALL_DIR} CACHE STRING "" FORCE)
+endfunction(download_wangle)
diff --git a/cmake/DownloadZookeeper.cmake b/cmake/DownloadZookeeper.cmake
index 962aee4..88778fb 100644
--- a/cmake/DownloadZookeeper.cmake
+++ b/cmake/DownloadZookeeper.cmake
@@ -22,22 +22,18 @@
#################### ZOOKEEPER
function(download_zookeeper SOURCE_DIR BUILD_DIR)
-
- ExternalProject_Add(
- ZooKeeper
- URL "https://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz"
- SOURCE_DIR "${BUILD_DIR}/dependencies/zookeeper-src"
- BINARY_DIR ${BUILD_DIR}/dependencies/zookeeper-src/src/c/
- CONFIGURE_COMMAND ./configure --without-cppunit --prefix=${BUILD_DIR}/dependencies/zookeeper-install
- PATCH_COMMAND patch ${BUILD_DIR}/dependencies/zookeeper-src/src/c/src/zookeeper.c ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/zookeeper.3.4.x.buf
- UPDATE_COMMAND ""
- )
-
- add_library(zookeeper STATIC IMPORTED)
- set_target_properties(zookeeper PROPERTIES IMPORTED_LOCATION "${BUILD_DIR}/dependencies/zookeeper-install/lib/libzookeeper_mt.a")
- add_dependencies(zookeeper ZooKeeper)
-
- set(ZOOKEEPER_DIR "${BUILD_DIR}/dependencies/zookeeper-install/" CACHE STRING "" FORCE)
-
-
-endfunction(download_zookeeper)
\ No newline at end of file
+ ExternalProject_Add(
+ ZooKeeper
+ URL "https://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz"
+ PREFIX "${BUILD_DIR}/dependencies"
+ SOURCE_DIR "${BUILD_DIR}/dependencies/zookeeper-src"
+ BINARY_DIR ${BUILD_DIR}/dependencies/zookeeper-src/src/c/
+ CONFIGURE_COMMAND ./configure --without-cppunit --prefix=${BUILD_DIR}/dependencies/zookeeper-install
+ PATCH_COMMAND patch ${BUILD_DIR}/dependencies/zookeeper-src/src/c/src/zookeeper.c ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/zookeeper.3.4.x.buf
+ UPDATE_COMMAND ""
+ )
+ add_library(zookeeper STATIC IMPORTED)
+ set_target_properties(zookeeper PROPERTIES IMPORTED_LOCATION "${BUILD_DIR}/dependencies/zookeeper-install/lib/libzookeeper_mt.a")
+ add_dependencies(zookeeper ZooKeeper)
+ set(ZOOKEEPER_DIR "${BUILD_DIR}/dependencies/zookeeper-install/" CACHE STRING "" FORCE)
+endfunction(download_zookeeper)