github.com/igggame/nebulas-go@v2.1.0+incompatible/nbre/3rd_party/functionflow/CMakeLists.txt (about)

     1  project(FunctionFlow)
     2  cmake_minimum_required(VERSION 2.6)
     3  message(STATUS "This is BINARY dir" ${PROJECT_BINARY_DIR})
     4  message(STATUS "This is SOURCE dir" ${PROJECT_SOURCE_DIR})
     5  add_definitions(-std=c++11)
     6  add_definitions(-stdlib=libc++)
     7  
     8  if(Release)
     9  	message(STATUS "This is a Release version!")
    10  	add_definitions(-O2)
    11  	add_definitions(-DNDEBUG)
    12  else(Release)
    13  	message(STATUS "This is a Debug version!")
    14  	add_definitions(-g)
    15          add_definitions(-O0)
    16          add_definitions(-DFUNCTION_FLOW_DEBUG)
    17  	include_directories(${PROJECT_SOURCE_DIR}/libs)
    18  	if(NOT EXISTS ${PROJECT_SOURCE_DIR}/libs/ff)
    19  		message(STATUS "require ff, start downloading...")
    20  		file(DOWNLOAD https://github.com/AthrunArthur/ff/archive/master.zip ${PROJECT_SOURCE_DIR}/libs/ff.zip)
    21  		exec_program(unzip ${PROJECT_SOURCE_DIR}/libs ARGS ff.zip */ff/* -d ffcommon)
    22  		exec_program(cp ${PROJECT_SOURCE_DIR}/libs ARGS -r ffcommon/ff-master/ff/ ff/)
    23  		exec_program(rm ${PROJECT_SOURCE_DIR}/libs ARGS -rf ffcommon/)
    24  	endif(NOT EXISTS ${PROJECT_SOURCE_DIR}/libs/ff)
    25  endif(Release)
    26  
    27  #add_definitions(-DUSING_SPIN_STEAL_QUEUE)
    28  #add_definitions(-DUSING_MUTEX_STEAL_QUEUE)
    29  add_definitions(-DUSING_WORK_STEALING_QUEUE)
    30  set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
    31  
    32  
    33  include_directories(${PROJECT_SOURCE_DIR}/ff/include)
    34  #link_directories(${PROJECT_SOURCE_DIR}/ff/bin)
    35  
    36  set(ff_src ff/src/common.cpp
    37    ff/src/rtcmn.cpp
    38    ff/src/runtime.cpp
    39    ff/src/wait.cpp)
    40  
    41  add_library(ff SHARED ${ff_src})
    42  add_library(ff_s STATIC ${ff_src})
    43  target_link_libraries(ff pthread)
    44  target_link_libraries(ff_s pthread)
    45  set_target_properties(ff_s PROPERTIES OUTPUT_NAME "ff")
    46  
    47  install(TARGETS ff ff_s
    48  RUNTIME DESTINATION bin
    49  LIBRARY DESTINATION lib
    50  ARCHIVE DESTINATION lib)
    51  
    52  install(DIRECTORY ${PROJECT_SOURCE_DIR}/ff/include/ff DESTINATION include)