常见的 CMake 文件结构和常用命令的使用:
# 设置项目名称和最低 CMake 版本要求
cmake_minimum_required(VERSION 3.5)
project(MyProject)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
# 添加子目录
add_subdirectory(lib1)
add_subdirectory(lib2)
# 添加并配置执行文件
add_executable(MyApp main.cpp)
target_link_libraries(MyApp PRIVATE Lib1 Lib2)
# 定义并设置变量
set(SOURCES
source1.cpp
source2.cpp
)
# 添加编译选项
add_compile_options(-Wall -Wextra)
# 设置 include 路径
include_directories(include)
# 链接库文件
target_link_libraries(MyApp PRIVATE MyLibrary)
# 安装规则
install(TARGETS MyApp DESTINATION bin)
# 条件语句
if (USE_FEATURE_X)
# 针对使用 FEATURE_X 的情况进行操作
endif()
# 循环语句
foreach(source_file ${SOURCES})
# 对每个源文件进行操作
endforeach()
# 自定义函数
function(my_custom_function arg1 arg2)
# 自定义函数的操作
endfunction()
上述示例包含了一些常见的 CMakeLists.txt 内容:
- 声明项目名称和设置最低 CMake 版本要求。
- 设置 C++ 标准。
- 添加并配置子目录(引入外部库或子项目)。
- 添加并配置执行目标(生成可执行文件)。
- 定义变量和设置选项。
- 设置包含路径和链接库文件。
- 添加安装规则,用于项目的安装。
- 使用条件语句处理特定情况。
- 使用循环语句对源文件进行迭代操作。
- 自定义函数以实现一些自定义操作。