Cmake·

[#11][总结与复习和接下来的内容][A菌严肃的CMake手记]

美式A菌

美式A菌

34 0

总结

基本命令

  • 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这本书。

所属系列

从当前文章继续阅读它所在合集中的前后内容。

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 0

登录 后参与评论

评论

成为第一个评论的人