
总结
基本命令
cmake_minimum_required(VERSION x.x): 指定 CMake 的最低版本要求。project(NAME VERSION x.x.x): 定义项目名称和版本。add_executable(target_name source_files): 添加可执行文件。
编译选项
set(CMAKE_CXX_STANDARD 11): 设置 C++ 标准版本。set(CMAKE_CXX_STANDARD_REQUIRED ON): 强制使用指定的 C++ 标准。
配置文件
configure_file(input_file output_file): 配置文件,将输入文件复制并替换其中的变量。
目标设置
target_include_directories(target PUBLIC include_dir): 设置目标的包含目录。target_link_libraries(target PUBLIC library): 链接库到目标。
消息输出
message(STATUS "message"): 输出消息。
库和子目录
add_library(target_name source_files): 添加库。add_subdirectory(directory): 添加子目录。
项目目录
PROJECT_SOURCE_DIR: 项目源代码的根目录。
条件判断
if(condition) ... endif(): 条件判断语句。
列表操作
list(APPEND list_name item): 向列表添加元素。
选项
option(OPTION_NAME "description" default_value): 定义选项。
编译定义
target_compile_definitions(target PUBLIC DEFINE): 添加编译定义。
CMake 命令行选项
cmake -D[OPTION_NAME]=value: 在命令行中设置 CMake 选项。
目标包含目录
target_include_directories(target INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}): 设置目标的包含目录,INTERFACE表示仅对依赖该目标的其他目标可见。
目标链接库
target_link_libraries(target INTERFACE library): 链接库到目标,INTERFACE表示仅对依赖该目标的其他目标可见。
条件表达式
$<condition:true_string>: 条件表达式,根据条件选择字符串。
编译器检测
$<COMPILE_LANG_AND_ID:language,compiler_ids>: 检测编译器语言和 ID。include(CheckCXXSourceCompiles): 包含 C++ 源代码编译检查模块。check_cxx_source_compiles(code variable): 检查 C++ 源代码是否能编译。
自定义命令和目标
add_custom_command: 添加自定义命令。add_custom_target: 添加自定义目标。add_dependencies(target depend_target): 添加目标依赖。
接下来的内容
我会出一些题目,然后自解并加以说明。
如果你等不及也可以直接浏览CMake Cookbook这本书。