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)