polardbxengine/extra/IS/cluster/CMakeLists.txt

152 lines
5.0 KiB
CMake

cmake_minimum_required(VERSION 2.8)
SET( CMAKE_CXX_COMPILER /opt/rh/devtoolset-2/root/usr/bin/g++ )
message("CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER} " )
SET( CMAKE_C_COMPILER /opt/rh/devtoolset-2/root/usr/bin/gcc )
message("CMAKE_C_COMPILER ${CMAKE_C_COMPILER} " )
SET (PRJ_SRC
../consensus/algorithm/configuration.cc
../consensus/algorithm/raft.cc
../consensus/algorithm/raft_server.cc
../consensus/algorithm/rd_raft_log.cc
../consensus/protocol/raft.pb.cc
../consensus/net/easyNet.cc
../consensus/service/service.cc
../consensus/service/client_service.cc
./service/state_machine.cc
./service/state_machine_service.cc
./service/state_machine_server.cc
./service/flags.cc
./storage/data_storage.cc
./memcached/text_request.cc
./memcached/text_response.cc
./memcached/memcached_easyNet.cc
./memcached/memcached_object.cc
)
SET (CLIENT_SRC
./service/flags.cc
./client/cli_sdk.cc
./client/dst_cli_sdk.cc
)
SET (UT_SRC
unittest/rd_raft_log-t.cc
unittest/text_request-t.cc
unittest/text_response-t.cc
unittest/memcached_object-t.cc
unittest/gunit_test_main.cc
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -O0")
SET (GFLAGS_OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/output/lib/libgflags.a
)
add_custom_command (
OUTPUT ${GFLAGS_OUTPUT}
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/gflags-2.1.2/ && ([ -f
Makefile ] || (cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_SOURCE_DIR}/output .) ) && make -j && make install
COMMENT "building gflags"
)
add_custom_target (libgflags
ALL DEPENDS ${GFLAGS_OUTPUT}
)
SET (LIBMEMCACHED_OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/output/lib/libmemcached.a
)
add_custom_command (
OUTPUT ${LIBMEMCACHED_OUTPUT}
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/libmemcached-1.0.18/ && ([ -f
Makefile ] || (./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/output --disable-sasl --enable-static --with-memcached LDFLAGS=-Wl,--as-neede))
&& make -j && make install
COMMENT "building libmemcached"
)
add_custom_target (libmemcached
ALL DEPENDS ${LIBMEMCACHED_OUTPUT}
)
SET (SNAPPY_OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/output/lib/libsnappy.a
)
add_custom_command (
OUTPUT ${SNAPPY_OUTPUT}
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/snappy-1.1.1/
&& ([ -f Makefile ] || (./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/output))
&& make -j && make install
COMMENT "building libsnappy"
)
add_custom_target (libsnappy
ALL DEPENDS ${SNAPPY_OUTPUT}
)
SET (ROCKSDB_OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/../dependency/rocksdb/librocksdb.a
)
add_custom_command (
OUTPUT ${ROCKSDB_OUTPUT}
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/rocksdb/ &&
(export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc &&
export CXX=/opt/rh/devtoolset-2/root/usr/bin/g++ &&
make static_lib -j)
COMMENT "building rocksdb"
)
add_custom_target (librocksdb
ALL DEPENDS ${ROCKSDB_OUTPUT}
)
SET (LIBEASY_OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/output/lib/libmyeasy.a
)
add_custom_command (
OUTPUT ${LIBEASY_OUTPUT}
#COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/easy/src && ([ -f
#Makefile ] || (sh bootstrap.sh && ./configure
#--prefix=${CMAKE_CURRENT_SOURCE_DIR}/output) ) && make -j && make install
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/easy/src && ([ -d
bu ] || (mkdir bu && cd bu && cmake -D
CMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_SOURCE_DIR}/output .. && cd ..) ) && cd
bu && make -j && make install
COMMENT "building libmyeasy"
)
add_custom_target (libmyeasy
ALL DEPENDS ${LIBEASY_OUTPUT}
)
INCLUDE_DIRECTORIES (../consensus/include ${CMAKE_CURRENT_SOURCE_DIR}/../dependency/rocksdb/include/
${CMAKE_CURRENT_SOURCE_DIR}/output/include/easy/
${CMAKE_CURRENT_SOURCE_DIR}/output/include/)
LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../dependency/rocksdb/
${CMAKE_CURRENT_SOURCE_DIR}/output/lib)
ADD_EXECUTABLE(rd_server ./service/server.cc ${PRJ_SRC})
ADD_EXECUTABLE(sample ./sample/sample.cc ${CLIENT_SRC})
ADD_EXECUTABLE(func_test ./test/func_test.cc ${CLIENT_SRC})
ADD_EXECUTABLE(dst_func_test ./test/dst_func_test.cc ${CLIENT_SRC})
ADD_EXECUTABLE(cli ./client/cli.cc ${CLIENT_SRC})
ADD_EXECUTABLE(dstcli ./client/dst_cli.cc ${CLIENT_SRC})
SET(EXECUTABLE_OUTPUT_PATH ./sample)
TARGET_LINK_LIBRARIES (rd_server protobuf gflags pthread librocksdb.a
libmemcached.a rt libsnappy.a z bz2 lz4 ssl crypto libmyeasy.a)
TARGET_LINK_LIBRARIES (cli gflags pthread libmemcached.a libmyeasy.a ssl crypto)
TARGET_LINK_LIBRARIES (dstcli gflags pthread libmemcached.a libmyeasy.a ssl crypto)
TARGET_LINK_LIBRARIES (sample gflags pthread libmemcached.a libmyeasy.a ssl crypto)
TARGET_LINK_LIBRARIES (func_test gflags pthread libmemcached.a libmyeasy.a ssl crypto)
TARGET_LINK_LIBRARIES (dst_func_test gflags pthread libmemcached.a libmyeasy.a ssl crypto)
ADD_EXECUTABLE (gtest_run ${PRJ_SRC} ${UT_SRC})
TARGET_LINK_LIBRARIES (gtest_run gtest protobuf gflags pthread librocksdb.a
libmemcached.a rt libsnappy.a z bz2 lz4 ssl crypto libmyeasy.a)