From e931cd5f23f101318cc5bff748f9aa5b690549ff Mon Sep 17 00:00:00 2001 From: QinZuoyan Date: Fri, 15 Jun 2018 10:17:26 +0800 Subject: [PATCH] scripts: build rocksdb support ccache; fix run.sh; fix CMakeLists.txt (#85) --- run.sh | 10 ++++++++++ src/CMakeLists.txt | 5 ++++- src/build.sh | 15 ++++++++++++++- src/server/CMakeLists.txt | 4 ++-- src/server/test/CMakeLists.txt | 2 +- src/shell/CMakeLists.txt | 5 ++--- 6 files changed, 33 insertions(+), 8 deletions(-) diff --git a/run.sh b/run.sh index bda831a..95645d5 100755 --- a/run.sh +++ b/run.sh @@ -153,6 +153,7 @@ function run_build() exit 1 fi + # reset DSN_ROOT env because "$ROOT/DSN_ROOT" is not generated now. export DSN_ROOT=$ROOT/rdsn/builder/output if [ ! -e $ROOT/DSN_ROOT ]; then ln -sf $DSN_ROOT $ROOT/DSN_ROOT @@ -173,6 +174,15 @@ function run_build() if [ "$CLEAR_THIRDPARTY" == "YES" ]; then OPT="$OPT --clear_thirdparty" fi + if [ "$WARNING_ALL" == "YES" ]; then + OPT="$OPT -w" + fi + if [ "$RUN_VERBOSE" == "YES" ]; then + OPT="$OPT -v" + fi + if [ "$ENABLE_GCOV" == "YES" ]; then + OPT="$OPT --enable_gcov" + fi ./run.sh build $OPT if [ $? -ne 0 ]; then echo "ERROR: build rdsn failed" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 162f0c3..6c5cfa9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,6 +5,9 @@ set(DSN_THIRDPARTY_ROOT "$ENV{DSN_THIRDPARTY_ROOT}") if((DSN_ROOT STREQUAL "") OR (NOT EXISTS "${DSN_ROOT}/")) message(FATAL_ERROR "Please make sure that DSN_ROOT is defined and does exists.") endif() +if((DSN_THIRDPARTY_ROOT STREQUAL "") OR (NOT EXISTS "${DSN_THIRDPARTY_ROOT}/")) + message(FATAL_ERROR "Please make sure that DSN_THIRDPARTY_ROOT is defined and does exists.") +endif() include("${DSN_ROOT}/bin/dsn.cmake") @@ -14,7 +17,7 @@ dsn_common_setup() include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) -include_directories("../rocksdb/include") +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../rocksdb/include) add_subdirectory(base) add_subdirectory(client_lib) diff --git a/src/build.sh b/src/build.sh index a8c3f29..bdf752c 100755 --- a/src/build.sh +++ b/src/build.sh @@ -24,6 +24,8 @@ ROOT=`pwd` BUILD_DIR="$ROOT/builder" +echo "DSN_ROOT=$DSN_ROOT" +echo "DSN_THIRDPARTY_ROOT=$DSN_THIRDPARTY_ROOT" echo "C_COMPILER=$C_COMPILER" echo "CXX_COMPILER=$CXX_COMPILER" CMAKE_OPTIONS="$CMAKE_OPTIONS -DCMAKE_C_COMPILER=$C_COMPILER -DCMAKE_CXX_COMPILER=$CXX_COMPILER" @@ -126,7 +128,18 @@ then rm -f ../rocksdb/pegasus_bench fi -make -C ../rocksdb static_lib_$BUILD_TYPE $MAKE_OPTIONS +# use ccache if possible +if [ `command -v ccache` ] +then + ROCKSDB_CC="ccache $C_COMPILER" + ROCKSDB_CXX="ccache $CXX_COMPILER" +else + ROCKSDB_CC="$C_COMPILER" + ROCKSDB_CXX="$CXX_COMPILER" +fi + +echo "ROCKDB_CC=$ROCKSDB_CC, ROCKSDB_CXX=$ROCKSDB_CXX" +CC=$ROCKSDB_CC CXX=$ROCKSDB_CXX make -C ../rocksdb static_lib_$BUILD_TYPE $MAKE_OPTIONS if [ $? -ne 0 ] then echo "ERROR: build librocksdb.a failed" diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index 243e808..4b98348 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -10,7 +10,7 @@ set(MY_PROJ_SRC "") # "GLOB" for non-recursive search set(MY_SRC_SEARCH_MODE "GLOB") -set(MY_PROJ_INC_PATH "${DSN_ROOT}/include/ext") +set(MY_PROJ_INC_PATH "") set(MY_PROJ_LIBS dsn_replica_server @@ -40,7 +40,7 @@ else() set(MY_PROJ_LIBS rocksdblib ${MY_PROJ_LIBS} rpcrt4) endif() -set(MY_PROJ_LIB_PATH "../../rocksdb" "../ext/libevent/lib" ${LIBFDS_LIB_DIR} ${POCO_LIB_DIR}) +set(MY_PROJ_LIB_PATH "../../rocksdb") set(MY_BOOST_PACKAGES system filesystem) diff --git a/src/server/test/CMakeLists.txt b/src/server/test/CMakeLists.txt index 5e9323e..b8a51d3 100644 --- a/src/server/test/CMakeLists.txt +++ b/src/server/test/CMakeLists.txt @@ -11,7 +11,7 @@ set(MY_PROJ_SRC "../pegasus_server_impl.cpp" set(MY_SRC_SEARCH_MODE "GLOB") -set(MY_PROJ_LIB_PATH "../../../rocksdb" ${LIBFDS_LIB_DIR} ${POCO_LIB_DIR}) +set(MY_PROJ_LIB_PATH "../../../rocksdb") set(MY_PROJ_LIBS dsn_replica_server diff --git a/src/shell/CMakeLists.txt b/src/shell/CMakeLists.txt index 51a7e6e..d9ef9b9 100644 --- a/src/shell/CMakeLists.txt +++ b/src/shell/CMakeLists.txt @@ -10,8 +10,7 @@ set(MY_PROJ_SRC "") # "GLOB" for non-recursive search set(MY_SRC_SEARCH_MODE "GLOB") -set(MY_PROJ_INC_PATH "../include" - "../base") +set(MY_PROJ_INC_PATH "../include" "../base") set(MY_PROJ_LIBS dsn.replication.tool @@ -39,7 +38,7 @@ else() set(MY_PROJ_LIBS rocksdblib ${MY_PROJ_LIBS} rpcrt4) endif() -set(MY_PROJ_LIB_PATH "../../rocksdb" ${LIBFDS_LIB_DIR} ${POCO_LIB_DIR}) +set(MY_PROJ_LIB_PATH "../../rocksdb") set(MY_BINPLACES "${CMAKE_CURRENT_SOURCE_DIR}/config.ini") -- GitLab