diff --git a/CMakeLists.txt b/CMakeLists.txt index 8542e1343fcc8724bc7a14cef986d52c4990df18..510ee2979c8a86c833b7e781a65794e6317008a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,19 +8,10 @@ # # CMAKE_C_COMPILER -- Specify the compiler for C language # CMAKE_CXX_COMPILER -- Specify the compiler for C++ language - -# NEBULA_GPERF_BIN_DIR -- Specify the full path to the directory -# containing gperf binary -# NEBULA_FLEX_ROOT -- Specify the root directory for flex -# NEBULA_BISON_ROOT -- Specify the root directory for bison -# NEBULA_READLINE_ROOT -- Specify the root directory for readline -# NEBULA_NCURSES_ROOT -- Specify the root directory for ncurses -# NEBULA_KRB5_ROOT -- Specify the root directory for KRB5 -# NEBULA_LIBUNWIND_ROOT -- Specify the root directory for libunwind -# NEBULA_OPENSSL_ROOT -- Specify the root directory for openssl -# NEBULA_BOOST_ROOT -- Specify the root directory for boost - -# NEBULA_THIRDPARTY_ROOT -- Specify the root directory for third-party +# +# NEBULA_THIRDPARTY_ROOT -- Specify the root directory for third-party +# NEBULA_OTHER_ROOT -- Specify the root directory for user build +# -- Split with ":", exp: DIR:DIR # # SKIP_JAVA_CLIENT -- Skip building the java client # ENABLE_JEMALLOC -- Link jemalloc into all executables @@ -129,61 +120,6 @@ endif() # To include customized FindXXX.cmake modules set(CMAKE_MODULE_PATH "${NEBULA_HOME}/cmake" ${CMAKE_MODULE_PATH}) -if(NOT ${NEBULA_KRB5_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_KRB5_ROOT: " ${NEBULA_KRB5_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_KRB5_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_KRB5_ROOT}/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_KRB5_ROOT}/bin) -endif() - -if(NOT ${NEBULA_LIBUNWIND_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_LIBUNWIND_ROOT: " ${NEBULA_LIBUNWIND_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_LIBUNWIND_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_LIBUNWIND_ROOT}/lib) -endif() - -if(NOT ${NEBULA_OPENSSL_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_OPENSSL_ROOT: " ${NEBULA_OPENSSL_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_OPENSSL_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_OPENSSL_ROOT}/lib) -endif() - -if(NOT ${NEBULA_BOOST_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_BOOST_ROOT: " ${NEBULA_BOOST_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_BOOST_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_BOOST_ROOT}/lib) -endif() - -if(NOT ${NEBULA_READLINE_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_READLINE_ROOT: " ${NEBULA_READLINE_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_READLINE_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_READLINE_ROOT}/lib) -endif() - -if(NOT ${NEBULA_NCURSES_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_NCURSES_ROOT: " ${NEBULA_NCURSES_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_NCURSES_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_NCURSES_ROOT}/lib) -endif() - -if(NOT ${NEBULA_FLEX_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_FLEX_ROOT: " ${NEBULA_FLEX_ROOT}) - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_FLEX_ROOT}/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_FLEX_ROOT}/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_FLEX_ROOT}/bin) -endif() - -if(NOT ${NEBULA_BISON_ROOT} STREQUAL "") - message(STATUS "Specified NEBULA_BISON_ROOT: " ${NEBULA_BISON_ROOT}) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_BISON_ROOT}/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_BISON_ROOT}/bin) -endif() - -if(NOT ${NEBULA_GPERF_BIN_DIR} STREQUAL "") - message(STATUS "Specified NEBULA_GPERF_BIN_DIR: " ${NEBULA_GPERF_BIN_DIR}) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_GPERF_BIN_DIR}) -endif() - # When NEBULA_THIRDPARTY_ROOT is null, set default value as /opt/nebula/third-party if("${NEBULA_THIRDPARTY_ROOT}" STREQUAL "") SET(NEBULA_THIRDPARTY_ROOT "/opt/nebula/third-party") @@ -192,80 +128,27 @@ endif() # third-party if(NOT ${NEBULA_THIRDPARTY_ROOT} STREQUAL "") message(STATUS "Specified NEBULA_THIRDPARTY_ROOT: " ${NEBULA_THIRDPARTY_ROOT}) - # bzip2 - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/bzip2/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/bzip2/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/bzip2/bin) - - # double-conversion - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/double-conversion/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/double-conversion/lib) - - # fatal - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/fatal/include) - - # fbthrift - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/fbthrift/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/fbthrift/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/fbthrift/bin) - - # folly - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/folly/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/folly/lib) - - # gflags - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/gflags/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/gflags/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/gflags/bin) - - # glog - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/glog/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/glog/lib) - - # googletest - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/googletest/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/googletest/lib) - - # jemalloc - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/jemalloc/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/jemalloc/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/jemalloc/bin) - - # libevent - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/libevent/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/libevent/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/libevent/bin) - - # mstch - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/mstch/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/mstch/lib) - - # proxygen - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/proxygen/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/proxygen/lib) - - # rocksdb - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/rocksdb/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/rocksdb/lib) - set(ROCKSDB_LIBRARIES ${NEBULA_ROCKSDB_ROOT}/lib/librocksdb.a) - - # snappy - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/snappy/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/snappy/lib) - - # wangle - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/wangle/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/wangle/lib) - - # zlib - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/zlib/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/zlib/lib) - - # zstd - list(INSERT CMAKE_INCLUDE_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/zstd/include) - list(INSERT CMAKE_LIBRARY_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/zstd/lib) - list(INSERT CMAKE_PROGRAM_PATH 0 ${NEBULA_THIRDPARTY_ROOT}/zstd/bin) + list(APPEND CMAKE_INCLUDE_PATH ${NEBULA_THIRDPARTY_ROOT}/include) + list(APPEND CMAKE_LIBRARY_PATH ${NEBULA_THIRDPARTY_ROOT}/lib) + list(APPEND CMAKE_LIBRARY_PATH ${NEBULA_THIRDPARTY_ROOT}/lib64) + list(APPEND CMAKE_PROGRAM_PATH ${NEBULA_THIRDPARTY_ROOT}/bin) + include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/include) + link_directories( + ${NEBULA_THIRDPARTY_ROOT}/lib + ${NEBULA_THIRDPARTY_ROOT}/lib64 + ) +endif() +if(NOT ${NEBULA_OTHER_ROOT} STREQUAL "") + string(REPLACE ":" ";" DIR_LIST ${NEBULA_OTHER_ROOT}) + list(LENGTH DIR_LIST len) + foreach(DIR IN LISTS DIR_LIST ) + list(INSERT CMAKE_INCLUDE_PATH 0 ${DIR}/include) + list(INSERT CMAKE_LIBRARY_PATH 0 ${DIR}/lib) + list(INSERT CMAKE_PROGRAM_PATH 0 ${DIR}/bin) + include_directories(SYSTEM ${DIR}/include) + link_directories(${DIR}/lib) + endforeach() endif() string(REPLACE ";" ":" INCLUDE_PATH_STR "${CMAKE_INCLUDE_PATH}") @@ -424,29 +307,6 @@ macro(nebula_add_library name type) ) endmacro() -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/bzip2/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/double-conversion/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/fatal/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/fbthrift/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/folly/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/gflags/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/glog/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/googletest/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/jemalloc/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/libevent/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/mstch/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/proxygen/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/rocksdb/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/snappy/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/wangle/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/zlib/include) -include_directories(SYSTEM ${NEBULA_THIRDPARTY_ROOT}/zstd/include) -include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) -include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR}) -include_directories(SYSTEM ${KRB5_INCLUDE_DIRS}) -include_directories(SYSTEM ${FLEX_INCLUDE_DIRS}) -include_directories(SYSTEM ${NCURSES_INCLUDE_DIR}) -include_directories(SYSTEM ${Readline_INCLUDE_DIR}) include_directories(AFTER ${NEBULA_HOME}/src) include_directories(AFTER src/common) include_directories(AFTER src/interface) @@ -456,28 +316,6 @@ include_directories(AFTER ${CMAKE_CURRENT_BINARY_DIR}/src/kvstore/plugins) include_directories(AFTER ${CMAKE_CURRENT_BINARY_DIR}/src/kvstore/plugins/hbase) include_directories(AFTER ${CMAKE_CURRENT_BINARY_DIR}/src/parser) -link_directories( - ${NEBULA_THIRDPARTY_ROOT}/bzip2/lib - ${NEBULA_THIRDPARTY_ROOT}/double-conversion/lib - ${NEBULA_THIRDPARTY_ROOT}/fatal/lib - ${NEBULA_THIRDPARTY_ROOT}/fbthrift/lib - ${NEBULA_THIRDPARTY_ROOT}/folly/lib - ${NEBULA_THIRDPARTY_ROOT}/gflags/lib - ${NEBULA_THIRDPARTY_ROOT}/glog/lib - ${NEBULA_THIRDPARTY_ROOT}/googletest/lib - ${NEBULA_THIRDPARTY_ROOT}/jemalloc/lib - ${NEBULA_THIRDPARTY_ROOT}/libevent/lib - ${NEBULA_THIRDPARTY_ROOT}/mstch/lib - ${NEBULA_THIRDPARTY_ROOT}/proxygen/lib - ${NEBULA_THIRDPARTY_ROOT}/rocksdb/lib - ${NEBULA_THIRDPARTY_ROOT}/snappy/lib - ${NEBULA_THIRDPARTY_ROOT}/wangle/lib - ${NEBULA_THIRDPARTY_ROOT}/zlib/lib - ${NEBULA_THIRDPARTY_ROOT}/zstd/lib - ${Boost_LIBRARY_DIRS} - ${KRB5_LIBRARY_DIRS} -) - # All thrift libraries set(THRIFT_LIBRARIES thriftcpp2