diff --git a/CMakeLists.txt b/CMakeLists.txt index a436957..890718a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,12 +21,18 @@ if(NOT INSTALL_PATH) endif() message("INSTALL_PATH:${INSTALL_PATH}") +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "RelWithDebInfo") +endif() +message("CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") + include(ExternalProject) ExternalProject_Add(gflags PREFIX gflags SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gflags CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_STATIC_LIBS=ON -DBUILD_TESTING=OFF -DINSTALL_HEADERS=ON @@ -41,6 +47,7 @@ ExternalProject_Add(glog PREFIX glog SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/glog CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=OFF -DWITH_GFLAGS=ON @@ -56,6 +63,8 @@ ExternalProject_Add(glog ExternalProject_Add(gtest PREFIX gtest SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/googletest + CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} @@ -66,6 +75,7 @@ ExternalProject_Add(fmt PREFIX fmt SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/fmt CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DFMT_TEST=OFF CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON @@ -78,6 +88,7 @@ ExternalProject_Add(nlohmann-json PREFIX nlohmann-json SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/nlohmann-json CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DJSON_BuildTests=OFF -DJSON_MultipleHeaders=ON @@ -93,6 +104,7 @@ ExternalProject_Add(rapidjson PREFIX rapidjson SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rapidjson CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_SHARED_LIBS=OFF -DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF @@ -109,6 +121,7 @@ ExternalProject_Add(jsoncpp PREFIX jsoncpp SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF -DBUILD_SHARED_LIBS=OFF @@ -133,7 +146,8 @@ ExternalProject_Add(zlib SOURCE_DIR ${ZLIB_BINARY_DIR} BINARY_DIR ${ZLIB_BINARY_DIR} CMAKE_ARGS - -DBUILD_SHARED_LIBS=OFF + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DBUILD_SHARED_LIBS=OFF CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} @@ -159,6 +173,7 @@ ExternalProject_Add(absl PREFIX absl SOURCE_DIR "${PROTOBUF_SOURCES_DIR}/third_party/abseil-cpp" CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DABSL_BUILD_TESTING=OFF -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DABSL_USE_GOOGLETEST_HEAD=ON @@ -171,6 +186,8 @@ ExternalProject_Add(absl ExternalProject_Add(utf8_range PREFIX utf8_range SOURCE_DIR "${PROTOBUF_SOURCES_DIR}/third_party/utf8_range" + CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -Dutf8_range_ENABLE_TESTS:BOOL=OFF @@ -185,6 +202,8 @@ ExternalProject_Add(utf8_range ExternalProject_Add(protobuf PREFIX protobuf SOURCE_DIR "${PROTOBUF_SOURCES_DIR}" + CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -Dprotobuf_BUILD_TESTS:BOOL=OFF @@ -207,6 +226,8 @@ SET(GRPC_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/grpc) ExternalProject_Add(c-ares PREFIX c-ares SOURCE_DIR "${GRPC_SOURCES_DIR}/third_party/cares/cares" + CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCARES_SHARED:BOOL=OFF @@ -221,6 +242,8 @@ ExternalProject_Add(c-ares ExternalProject_Add(re2 PREFIX re2 SOURCE_DIR "${GRPC_SOURCES_DIR}/third_party/re2" + CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} @@ -247,7 +270,8 @@ ExternalProject_Add(grpc PREFIX grpc SOURCE_DIR "${GRPC_SOURCES_DIR}" CMAKE_ARGS - -DOPENSSL_USE_STATIC_LIBS=TRUE + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DOPENSSL_USE_STATIC_LIBS=TRUE CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DgRPC_INSTALL:BOOL=ON @@ -276,8 +300,9 @@ ExternalProject_Add(snappy PREFIX snappy SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/snappy CMAKE_ARGS - -DSNAPPY_BUILD_TESTS=OFF - -DSNAPPY_BUILD_BENCHMARKS=OFF + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DSNAPPY_BUILD_TESTS=OFF + -DSNAPPY_BUILD_BENCHMARKS=OFF CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} @@ -289,8 +314,9 @@ ExternalProject_Add(leveldb PREFIX leveldb SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/leveldb CMAKE_ARGS - -DLEVELDB_BUILD_TESTS=OFF - -DLEVELDB_BUILD_BENCHMARKS=OFF + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DLEVELDB_BUILD_TESTS=OFF + -DLEVELDB_BUILD_BENCHMARKS=OFF CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} @@ -305,6 +331,7 @@ ExternalProject_Add(brpc SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/brpc BINARY_DIR ${BRPC_BINARY_DIR} CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DWITH_GLOG=ON -DWITH_SNAPPY=ON @@ -332,6 +359,7 @@ ExternalProject_Add(braft SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/braft BINARY_DIR ${BRAFT_BINARY_DIR} CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_STANDARD=17 -DCMAKE_PREFIX_PATH=${INSTALL_PATH} @@ -384,6 +412,7 @@ ExternalProject_Add(rocksdb PREFIX rocksdb SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rocksdb" CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DPORTABLE=ON -DWITH_SNAPPY=ON @@ -439,12 +468,16 @@ if(NOT DEFINED GPERFTOOLS_SETUP_DONE) set(GPERFTOOLS_SETUP_DONE TRUE) endif() -SET(LIBBACKTRACE_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libbacktrace) +set(LIBBACKTRACE_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libbacktrace) +set(LIBBACKTRACE_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libbacktrace/build) +file(WRITE ${LIBBACKTRACE_BINARY_DIR}/copy_repo.sh + "mkdir -p ${LIBBACKTRACE_BINARY_DIR} && cp -rf ${LIBBACKTRACE_SOURCES_DIR}/* ${LIBBACKTRACE_BINARY_DIR}/") +execute_process(COMMAND sh ${LIBBACKTRACE_BINARY_DIR}/copy_repo.sh) ExternalProject_Add(libbacktrace PREFIX libbacktrace - SOURCE_DIR ${LIBBACKTRACE_SOURCES_DIR} + SOURCE_DIR ${LIBBACKTRACE_BINARY_DIR} BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND sh ${LIBBACKTRACE_SOURCES_DIR}/configure --prefix=${INSTALL_PATH} + CONFIGURE_COMMAND sh ${LIBBACKTRACE_BINARY_DIR}/configure --prefix=${INSTALL_PATH} BUILD_COMMAND $(MAKE) AM_CFLAGS=-fPIC INSTALL_COMMAND $(MAKE) install ) @@ -477,6 +510,7 @@ ExternalProject_Add(crc32c PREFIX crc32c SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/crc32c CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCRC32C_BUILD_TESTS=OFF -DCRC32C_BUILD_BENCHMARKS=OFF -DCRC32C_USE_GLOG=OFF @@ -491,6 +525,7 @@ ExternalProject_Add(memcache PREFIX memcache SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/memcache CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_SHARED_LIBS=OFF -DBUILD_DOCS=OFF -DBUILD_DOCSONLY=OFF @@ -505,6 +540,7 @@ ExternalProject_Add(spdlog PREFIX spdlog SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spdlog CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DSPDLOG_BUILD_SHARED=OFF -DSPDLOG_BUILD_EXAMPLE_HO=OFF CMAKE_CACHE_ARGS @@ -519,13 +555,14 @@ ExternalProject_Add(curl PREFIX curl SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/curl CMAKE_ARGS - -DCMAKE_PREFIX_PATH=${INSTALL_PATH} - -DBUILD_STATIC_LIBS=ON - -DBUILD_CURL_EXE=OFF - -DCURL_DISABLE_LDAP=ON - -DBUILD_SHARED_LIBS=OFF - -DBUILD_STATIC_CURL=OFF - -DUSE_LIBIDN2=OFF + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_PREFIX_PATH=${INSTALL_PATH} + -DBUILD_STATIC_LIBS=ON + -DBUILD_CURL_EXE=OFF + -DCURL_DISABLE_LDAP=ON + -DBUILD_SHARED_LIBS=OFF + -DBUILD_STATIC_CURL=OFF + -DUSE_LIBIDN2=OFF CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH} @@ -539,6 +576,7 @@ ExternalProject_Add(opentelemetry-cpp PREFIX opentelemetry-cpp SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/opentelemetry-cpp CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DBUILD_SHARED_LIBS=OFF -DWITH_OTLP_GRPC=OFF @@ -561,6 +599,7 @@ ExternalProject_Add(aws-sdk-cpp PREFIX aws-sdk-cpp SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DBUILD_SHARED_LIBS=OFF -DENABLE_TESTING=OFF @@ -580,6 +619,7 @@ ExternalProject_Add(libuuid PREFIX libuuid SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libuuid-cmake CMAKE_ARGS + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=${INSTALL_PATH} -DLIBUUID_STATIC=ON -DLIBUUID_SHARED=OFF @@ -594,17 +634,18 @@ ExternalProject_Add(hdf5 PREFIX hdf5 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/hdf5 CMAKE_ARGS - -C ${CMAKE_CURRENT_SOURCE_DIR}/hdf5/config/cmake/cacheinit.cmake - -DHDF5_ENABLE_SZIP_SUPPORT=OFF - -DHDF5_ENABLE_Z_LIB_SUPPORT=ON - -DHDF5_BUILD_CPP_LIB=ON - -DHDF5_BUILD_EXAMPLES=OFF - -DHDF5_BUILD_TOOLS=OFF - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DHDF5_BUILD_JAVA=OFF - -DHDF5_BUILD_FORTRAN=OFF - -DHDF5_BUILD_HL_GIF_TOOLS=OFF + -C ${CMAKE_CURRENT_SOURCE_DIR}/hdf5/config/cmake/cacheinit.cmake + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DHDF5_ENABLE_SZIP_SUPPORT=OFF + -DHDF5_ENABLE_Z_LIB_SUPPORT=ON + -DHDF5_BUILD_CPP_LIB=ON + -DHDF5_BUILD_EXAMPLES=OFF + -DHDF5_BUILD_TOOLS=OFF + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF + -DHDF5_BUILD_JAVA=OFF + -DHDF5_BUILD_FORTRAN=OFF + -DHDF5_BUILD_HL_GIF_TOOLS=OFF CMAKE_CACHE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=TRUE -DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_PATH}