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()