未验证 提交 741036a6 编写于 作者: W Wang Guibao 提交者: GitHub

Merge pull request #32 from wangguibao/fix_cube_cmake

Fix cube cmake
...@@ -12,43 +12,10 @@ ...@@ -12,43 +12,10 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License # limitations under the License
cmake_minimum_required(VERSION 2.8.10)
project(CubeAPI C CXX)
option(CUBE_API_LINK_SO "Whether cube are linked dynamically" OFF)
execute_process(
COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex \".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
OUTPUT_VARIABLE OUTPUT_PATH
)
set(CMAKE_PREFIX_PATH ${OUTPUT_PATH})
include(FindThreads)
include(FindProtobuf)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER idl/cube.proto idl/control.proto) protobuf_generate_cpp(PROTO_SRC PROTO_HEADER idl/cube.proto idl/control.proto)
# include PROTO_HEADER # include PROTO_HEADER
include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Search for libthrift* by best effort. If it is not found and brpc is
# compiled with thrift protocol enabled, a link error would be reported.
find_library(THRIFT_LIB NAMES thrift)
if (NOT THRIFT_LIB)
set(THRIFT_LIB "")
endif()
find_library(THRIFTNB_LIB NAMES thriftnb)
if (NOT THRIFTNB_LIB)
set(THRIFTNB_LIB "")
endif()
find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
message(FATAL_ERROR "Fail to find gflags")
endif()
include_directories(${GFLAGS_INCLUDE_PATH})
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
include(CheckFunctionExists) include(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME) CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
...@@ -71,23 +38,6 @@ else() ...@@ -71,23 +38,6 @@ else()
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif() endif()
find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
find_library(LEVELDB_LIB NAMES leveldb)
if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
message(FATAL_ERROR "Fail to find leveldb")
endif()
include_directories(${LEVELDB_INCLUDE_PATH})
find_library(SSL_LIB NAMES ssl)
if (NOT SSL_LIB)
message(FATAL_ERROR "Fail to find ssl")
endif()
find_library(CRYPTO_LIB NAMES crypto)
if (NOT CRYPTO_LIB)
message(FATAL_ERROR "Fail to find crypto")
endif()
add_executable(cube-cli src/cube_cli.cpp src/cube_api.cpp src/meta.cpp add_executable(cube-cli src/cube_cli.cpp src/cube_api.cpp src/meta.cpp
${PROTO_SRC} ${PROTO_HEADER}) ${PROTO_SRC} ${PROTO_HEADER})
...@@ -95,14 +45,11 @@ add_library(cube-api STATIC src/cube_api.cpp src/meta.cpp ...@@ -95,14 +45,11 @@ add_library(cube-api STATIC src/cube_api.cpp src/meta.cpp
${PROTO_SRC} ${PROTO_HEADER}) ${PROTO_SRC} ${PROTO_HEADER})
set(DYNAMIC_LIB set(DYNAMIC_LIB
${CMAKE_THREAD_LIBS_INIT} gflags
${GFLAGS_LIBRARY} protobuf
${PROTOBUF_LIBRARIES} leveldb
${LEVELDB_LIB} -lssl
${SSL_LIB} -lcrypto
${CRYPTO_LIB}
${THRIFT_LIB}
${THRIFTNB_LIB}
) )
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
...@@ -118,7 +65,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") ...@@ -118,7 +65,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
"-Wl,-U,_ProfilerStop") "-Wl,-U,_ProfilerStop")
endif() endif()
target_link_libraries(cube-cli ${DYNAMIC_LIB} brpc -lpthread -ldl -lz) target_link_libraries(cube-cli brpc ${DYNAMIC_LIB} -lpthread -ldl -lz)
target_link_libraries(cube-api ${DYNAMIC_LIB} brpc -lpthread -ldl -lz) target_link_libraries(cube-api ${DYNAMIC_LIB} brpc -lpthread -ldl -lz)
# install # install
......
...@@ -12,37 +12,12 @@ ...@@ -12,37 +12,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License # limitations under the License
cmake_minimum_required(VERSION 2.8.10)
project(Cube C CXX)
option(CUBE_LINK_SO "Whether cube are linked dynamically" OFF)
execute_process(
COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex \".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
OUTPUT_VARIABLE OUTPUT_PATH
)
set(CMAKE_PREFIX_PATH ${OUTPUT_PATH})
include_directories(SYSTEM ${CMAKE_CURRENT_LIST_DIR}/include) include_directories(SYSTEM ${CMAKE_CURRENT_LIST_DIR}/include)
include_directories(SYSTEM ${CMAKE_CURRENT_BINARY_DIR}/../) include_directories(SYSTEM ${CMAKE_CURRENT_BINARY_DIR}/../)
include(FindProtobuf)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER proto/cube.proto proto/control.proto) protobuf_generate_cpp(PROTO_SRC PROTO_HEADER proto/cube.proto proto/control.proto)
# include PROTO_HEADER # include PROTO_HEADER
include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR})
include(FindThreads)
# compiled with thrift protocol enabled, a link error would be reported.
find_library(THRIFT_LIB NAMES thrift)
if (NOT THRIFT_LIB)
set(THRIFT_LIB "")
endif()
find_library(THRIFTNB_LIB NAMES thriftnb)
if (NOT THRIFTNB_LIB)
set(THRIFTNB_LIB "")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__= -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__= -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer")
...@@ -58,23 +33,6 @@ else() ...@@ -58,23 +33,6 @@ else()
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif() endif()
find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
find_library(LEVELDB_LIB NAMES leveldb)
if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
message(FATAL_ERROR "Fail to find leveldb")
endif()
include_directories(${LEVELDB_INCLUDE_PATH})
find_library(SSL_LIB NAMES ssl)
if (NOT SSL_LIB)
message(FATAL_ERROR "Fail to find ssl")
endif()
find_library(CRYPTO_LIB NAMES crypto)
if (NOT CRYPTO_LIB)
message(FATAL_ERROR "Fail to find crypto")
endif()
set(SRC_LIST src/server.cpp set(SRC_LIST src/server.cpp
src/cube_bvar.cpp src/cube_bvar.cpp
src/dict.cpp src/dict.cpp
...@@ -88,13 +46,10 @@ add_executable(cube ${SRC_LIST} src/main.cpp ...@@ -88,13 +46,10 @@ add_executable(cube ${SRC_LIST} src/main.cpp
${PROTO_SRC} ${PROTO_HEADER}) ${PROTO_SRC} ${PROTO_HEADER})
set(DYNAMIC_LIB set(DYNAMIC_LIB
${CMAKE_THREAD_LIBS_INIT} protobuf
${PROTOBUF_LIBRARIES} leveldb
${LEVELDB_LIB} -lssl
${SSL_LIB} -lcrypto
${CRYPTO_LIB}
${THRIFT_LIB}
${THRIFTNB_LIB}
) )
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
...@@ -110,12 +65,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") ...@@ -110,12 +65,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
"-Wl,-U,_ProfilerStop") "-Wl,-U,_ProfilerStop")
endif() endif()
target_link_libraries(cube ${DYNAMIC_LIB} brpc -lpthread -ldl -lz) target_link_libraries(cube brpc ${DYNAMIC_LIB} -lpthread -ldl -lz)
add_executable(cube_test ${SRC_LIST} test/cube_test.cpp add_executable(cube_test ${SRC_LIST} test/cube_test.cpp
${PROTO_SRC} ${PROTO_HEADER}) ${PROTO_SRC} ${PROTO_HEADER})
target_link_libraries(cube_test ${DYNAMIC_LIB} brpc gtest -lpthread -ldl -lz) target_link_libraries(cube_test brpc ${DYNAMIC_LIB} gtest -lpthread -ldl -lz)
# install # install
install(TARGETS cube install(TARGETS cube
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册