github.com/igggame/nebulas-go@v2.1.0+incompatible/nbre/3rd_party/fflib/CMakeLists.txt (about) 1 cmake_minimum_required(VERSION 2.8) 2 project(fflib) 3 4 add_definitions(-std=c++14) 5 add_definitions(-O2) 6 add_definitions(-DNDEBUG) 7 #add_definitions(-g) 8 #add_definitions(-DPROTO_BUF_SUPPORT) 9 10 11 include_directories(/usr/local/include) 12 include_directories(${PROJECT_SOURCE_DIR}/include) 13 find_package(Boost REQUIRED) 14 include_directories(${Boost_INCLUDE_DIRS}) 15 link_directories(${Boost_LIBRARY_DIRS}) 16 link_directories(/usr/local/lib) 17 18 set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) 19 20 21 file(GLOB_RECURSE functionflow_src src/functionflow/*.cpp) 22 file(GLOB_RECURSE net_src src/net/*.cpp) 23 file(GLOB_RECURSE public_header_src include/ff/*.h) 24 25 set(lib_list glog gflags) 26 27 find_package(Protobuf QUIET) 28 if(PROTOBUF_FOUND) 29 #message(STATUS "found protobuf, and include protobuf support") 30 #add_definitions(-DPROTO_BUF_SUPPORT) 31 #include_directories(${PROTOBUF_INCLUDE_DIRS}) 32 #set(src_list ${src_list} extension/protobuf/proto_buf_wrapper_pkg.cpp 33 # extension/protobuf/protobuf_pkg_hub.cpp) 34 #set(lib_list ${lib_list} ${PROTOBUF_LIBRARIES}) 35 else() 36 message(STATUS "not found protobuf, gonna ignore protobuf support") 37 endif() 38 39 add_library(functionflow_dynamic SHARED ${functionflow_src}) 40 add_library(functionflow_static STATIC ${functionflow_src}) 41 set_target_properties(functionflow_dynamic PROPERTIES OUTPUT_NAME "ff_functionflow") 42 set_target_properties(functionflow_static PROPERTIES OUTPUT_NAME "ff_functionflow") 43 44 add_library(net_dynamic SHARED ${net_src}) 45 add_library(net_static STATIC ${net_src}) 46 target_link_libraries(net_dynamic boost_program_options boost_system) 47 target_link_libraries(net_static boost_program_options boost_system) 48 set_target_properties(net_dynamic PROPERTIES OUTPUT_NAME "ff_net") 49 set_target_properties(net_static PROPERTIES OUTPUT_NAME "ff_net") 50 51 set_target_properties(net_static PROPERTIES PUBLIC_HEADER "${public_header_src}") 52 install(TARGETS functionflow_static functionflow_dynamic net_static net_dynamic 53 LIBRARY DESTINATION "lib" 54 ARCHIVE DESTINATION "lib") 55 install( 56 DIRECTORY include/ff DESTINATION "include") 57 58 59 60 if(Release) 61 else() 62 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/) 63 link_directories(${PROJECT_SOURCE_DIR}/lib) 64 add_subdirectory(example) 65 endif()