基本知识:
include(${CMAKE_SOURCE_DIR}/cmake/cmaketools.cmake)
include类似于C语言的include 展开
子工程add_subdirectory 比好用 include
静态库:
//源文件
aux_source_directory(. DATASTREAMING_SRC)
//静态库可执行文件到工程中
add_library(${DATASTREAM_LIB_NAME} STATIC ${DATASTREAMING_SRC})
//头文件
target_include_directories(${DATASTREAM_LIB_NAME} PRIVATE ${ALL_INCLUDE_DIRS})
可执行文件:
set(TARGETS TnMapDataAccessRegex)
//源文件
aux_source_directory(${CMAKE_SOURCE_DIR}/regex REGEX_SOURCE_FILES)
aux_source_directory(${CMAKE_SOURCE_DIR}/regex/dumper REGEX_DUNPER_SOURCE_FILES)
//添加可执行文件到工程中
add_executable( ${TARGETS}
${REGEX_SOURCE_FILES}
${REGEX_DUNPER_SOURCE_FILES}
)
//链接库,依赖顺序参照gcc
target_link_libraries(${TARGETS}
${MAP_DATA_ACCESS_LIB_NAME}
${MAP_DATA_ACCESS_DEPEND_LIBS}
)
//头文件目录
target_include_directories(${TARGETS}
PRIVATE
${ALL_INCLUDE_DIRS}
)
//定义宏
target_compile_definitions(${TARGETS} PRIVATE ${MAP_DATA_ACCESS_COMMON_DEFINITION})