头文件和库文件
# 将头文件目录引入到当前工程
include_directories
# 将头文件引入到目标子工程
target_include_directories
# 将第三方 lib 库文件引入到当前工程
link_libraries 表示
# 将第三方 lib 库文件引入到目标子工程
target_link_libraries
模块
.cmake
文件是一个模块文件,可以被include
到CMakeLists.txt
中,定义utils.cmake
function(zc_add_executable targetname srcs libs)
add_executable(${
targetname} ${
srcs})
target_link_libraries(${
targetname} ${
libs})
endfunction()
然后CMakeLists.txt
cmake_minimum_required (VERSION 3.5)
include (cmake/utils.cmake)
project(subprojects)
set(zc_lib
lib::app1
)
zc_add_executable(test_main "main/main.c" "${zc_lib}")
库
option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
if(BUILD_SHARED_LIBS)
add_library(example SHARED ${sources})
else()
add_library(example STATIC ${sources})
endif()
高级
mark_as_advanced 将CMake 的缓存变量标记为高级。
mark_as_advanced([CLEAR|FORCE] VAR VAR2 VAR...)
将缓存的变量标记为高级变量,高级变量指的是在CMake GUI中,只有当“显示高级选项”被打开时才会被显示的变量。