#cmake所需最小版本 cmake_minimum_required(VERSION 2.8) #添加c++语言支持 ENABLE_LANGUAGE(CXX) #PROJECT(projectname [CXX] [C] [Java])指定项目名称和工程支持语言 project(client) # if(NOT CMAKE_BUILD_TYPE) # set(CMAKE_BUILD_TYPE "Release") # endif() #-Wall显示全部警告 -g添加gdb调试支持 set(CMAKE_CXX_FLAGS " -std=c++11 -g -Wall") set(CMAKE_EXPORT_COMPILE_COMMANDS ON) #不作优化 set(CMAKE_CXX_FLAGS_DEBUG "-O0") # set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") #CMAKE_CURRENT_SOURCE_DIR 指的是当前处理的 CMakeLists.txt 所在的路径 set(PROJ_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) # find_library(G3LOGGER name g3logger) #INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...) #这条指令能够用来向工程添加多个特定的头文件搜索路径,路径之间用空格分割 include_directories(${PROJ_SOURCE_DIR}) # include_directories(${PROJ_SOURCE_DIR}/g3log/include/) # include_directories(${PROJ_SOURCE_DIR}/g3log/src/) #添加子文件夹 add_subdirectory(src) add_subdirectory(test) #在 CMakeLists.txt 处理过程当中执行命令 exec_program("cp ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json ${CMAKE_CURRENT_SOURCE_DIR}/")
include_directories(${CMAKE_CURRENT_SOURCE_DIR}) # include_directories(${CMAKE_CURRENT_BINARY_DIR}/g3log/include/) # include_directories(${CMAKE_CURRENT_SOURCE_DIR}/g3log/src/) # add_subdirectory(parser) add_subdirectory(concurrency) add_subdirectory(logger) add_subdirectory(base) add_subdirectory(netbase)
file(GLOB ProtoFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.proto") PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders ${ProtoFiles}) add_library(messages STATIC ${ProtoSources} ${ProtoHeaders}) target_link_libraries(messages ${PROTOBUF_LIBRARY}) set(ProtobufIncludePath ${CMAKE_CURRENT_BINARY_DIR} CACHE INTERNAL "Path to generated protobuf files.") # aux_source_directory(. libarbicore_scs) set(libarbicore_scs ArbiClient.cc ArbiServer.cc # arbit.pb.cc config_opts.cc ) add_library(arbicore STATIC ${libarbicore_scs}) target_link_libraries(arbicore ${PROTOBUF_LIBRARIES} messages gflags) # target_link_libraries(arbicore protobuf gflags) # target_compile_ add_executable(startArbiServer startArbiServer.cc ) # target_link_libraries(startArbiServer arbicommon arbilogger arbicore netbase) target_link_libraries(startArbiServer arbilogger arbicore netbase arbibase)