CMake

#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)
相关文章
相关标签/搜索