ccmake(1)

概要

ccmake [<options>] -B <path-to-build> [-S <path-to-source>]
ccmake [<options>] <path-to-source | path-to-existing-build>

描述

ccmake 可执行文件是 CMake 的 curses 界面。项目配置设置可以通过此 GUI 交互式地指定。当程序运行时,终端底部会提供简要说明。

CMake 是一个跨平台的构建系统生成器。项目使用每个源码树目录中名为 CMakeLists.txt 的平台无关 CMake 列表文件来指定其构建过程。用户通过使用 CMake 为其平台上的原生工具生成构建系统来构建项目。

选项

-S <path-to-source>

要构建的 CMake 项目的根目录路径。

-B <path-to-build>

CMake 将用作构建目录根目录的目录路径。

如果该目录不存在,CMake 将创建它。

-C <initial-cache>

预加载脚本以填充缓存。

当 CMake 首次在空的构建树中运行时,它会创建一个 CMakeCache.txt 文件,并使用项目的可自定义设置进行填充。此选项可用于指定一个文件,以便在首次遍历项目的 CMake 列表文件之前加载缓存条目。加载的条目优先级高于项目的默认值。给定的文件应当是一个 CMake 脚本,其中包含使用 CACHE 选项的 set() 命令,而不是缓存格式的文件。

脚本中对 CMAKE_SOURCE_DIRCMAKE_BINARY_DIR 的引用将指向顶层源码树和构建树。

-D <var>:<type>=<value>, -D <var>=<value>

创建或更新 CMake CACHE 条目。

当 CMake 首次在空的构建树中运行时,它会创建一个 CMakeCache.txt 文件,并使用项目的可自定义设置进行填充。此选项可用于指定一个优先级高于项目默认值的设置。此选项可以重复使用,以指定任意多个 CACHE 条目。

如果给出了 :<type> 部分,它必须是 set() 命令文档中为其 CACHE 签名指定的类型之一。如果省略 :<type> 部分,则如果该条目尚不存在类型,它将被创建为无类型。如果项目中的命令将类型设置为 PATHFILEPATH,则 <value> 将被转换为绝对路径。

此选项也可以作为一个单独的参数给出:-D<var>:<type>=<value>-D<var>=<value>

需要注意的一点是,-C-D 参数的顺序非常重要。它们将按照列出的顺序执行,最后一个参数优于之前的参数。例如,如果您指定 -DCMAKE_BUILD_TYPE=Debug,后跟一个包含以下调用的 -C 参数:

set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)

那么 -C 参数将具有优先权,CMAKE_BUILD_TYPE 将被设置为 Release。但是,如果 -D 参数出现在 -C 参数之后,它将被设置为 Debug

如果 -C 文件中的 set(... CACHE ...) 调用没有使用 FORCE,而 -D 参数设置了相同的变量,由于非 FORCEset(... CACHE ...) 调用的特性,-D 参数无论顺序如何都将具有优先权。

-U <globbing_expr>

从 CMake CACHE 中移除匹配的条目。

此选项可用于从 CMakeCache.txt 文件中移除一个或多个变量,支持使用 *? 的通配符表达式。此选项可以重复使用,以移除任意多个 CACHE 条目。

请谨慎使用,这可能会导致您的 CMakeCache.txt 无法正常工作。

-G <generator-name>

指定构建系统生成器。

CMake 可能在某些平台上支持多种原生构建系统。生成器负责生成特定的构建系统。可能的生成器名称在 cmake-generators(7) 手册中有说明。

如果未指定,CMake 会检查 CMAKE_GENERATOR 环境变量,否则将回退到内置的默认选择。

-T <toolset-spec>

生成器的工具集规范(如果支持)。

某些 CMake 生成器支持工具集规范,以告知原生构建系统如何选择编译器。详情请参阅 CMAKE_GENERATOR_TOOLSET 变量。

-A <platform-name>

指定平台名称(如果生成器支持)。

某些 CMake 生成器支持提供给原生构建系统的平台名称,以用于选择编译器或 SDK。详情请参阅 CMAKE_GENERATOR_PLATFORM 变量。

--toolchain <path-to-file>

3.21 版本新增。

指定交叉编译工具链文件,等同于设置 CMAKE_TOOLCHAIN_FILE 变量。相对路径被解释为相对于构建目录;如果未找到,则相对于源码目录。

--install-prefix <directory>

3.21 版本新增。

指定安装目录,由 CMAKE_INSTALL_PREFIX 变量使用。必须是绝对路径。

--project-file <project-file-name>

4.0 版本新增。

指定替代的项目文件名。

这决定了 CMake 在配置项目时处理的顶层文件,以及 add_subdirectory() 处理的文件。

默认情况下,这是 CMakeLists.txt。如果设置为其他任何值,则在项目子目录中找不到指定文件时,CMakeLists.txt 将作为回退使用。

注意

此功能旨在供开发人员在增量过渡期间临时使用,而非用于发布最终产品。当项目文件不是 CMakeLists.txt 时,CMake 始终会发出警告。

-Wno-dev

抑制开发者警告。

抑制针对 CMakeLists.txt 文件作者的警告。默认情况下,这也将关闭弃用警告。

-Wdev

启用开发者警告。

启用针对 CMakeLists.txt 文件作者的警告。默认情况下,这也将开启弃用警告。

-Wdeprecated

启用已弃用功能警告。

启用针对 CMakeLists.txt 文件作者的、关于使用已弃用功能的警告。

-Wno-deprecated

抑制已弃用功能警告。

抑制针对 CMakeLists.txt 文件作者的、关于使用已弃用功能的警告。

-Werror=<what>

将 CMake 警告视为错误。<what> 必须是以下项之一:

开发

将开发者警告视为错误。

将针对 CMakeLists.txt 文件作者的警告视为错误。默认情况下,这也将把弃用警告视为错误。

已弃用

将已弃用的宏和函数警告视为错误。

将针对 CMakeLists.txt 文件作者的、关于使用已弃用宏和函数的警告视为错误。

-Wno-error=<what>

不要将 CMake 警告视为错误。<what> 必须是以下项之一:

开发

将针对 CMakeLists.txt 文件作者的警告不视为错误。默认情况下,这也将关闭将弃用警告视为错误的功能。

已弃用

将针对 CMakeLists.txt 文件作者的、关于使用已弃用宏和函数的警告不视为错误。

-version[=json-v1] [<file>], --version[=json-v1] [<file>], /V[=json-v1] [<file>], /version[=json-v1] [<file>]

显示程序名称/版本横幅并退出。如果指定了 json-v1,则以 JSON 格式打印扩展版本信息。JSON 输出包含 CMake 及其依赖项的版本。如果给定了 <file>,输出将被打印到该指定文件。

JSON 输出格式以机器可读的形式由 此 JSON 模式 描述。

-h, -H, --help, -help, -usage, /?

打印使用信息并退出。

使用说明描述了基本的命令行界面及其选项。

--help <keyword> [<file>]

打印一个 CMake 关键字的帮助。

<keyword> 可以是属性、变量、命令、策略、生成器或模块。

相关的 <keyword> 手册条目以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

3.28 版本变更:在 CMake 3.28 之前,此选项仅支持命令名称。

--help-full [<file>]

打印所有帮助手册并退出。

所有手册都以人类可读的文本格式打印。如果给定,输出将打印到指定 <file>

--help-manual <man> [<file>]

打印一个帮助手册并退出。

指定的手册以人类可读的文本格式打印。如果给定,输出将打印到指定 <file>

--help-manual-list [<file>]

列出可用的帮助手册并退出。

列表包含所有可以通过使用 `--help-manual` 选项后跟手册名称来获取帮助的手册。如果指定了 <file>,则输出将打印到该文件。

--help-command <cmd> [<file>]

打印一个命令的帮助并退出。

cmake-commands(7) 手册条目以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-command-list [<file>]

列出可获取帮助的命令并退出。

列表包含所有可以通过使用 `--help-command` 选项后跟命令名称来获取帮助的命令。如果指定了 <file>,则输出将打印到该文件。

--help-commands [<file>]

打印 cmake-commands 手册并退出。

cmake-commands(7) 手册以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-module <mod> [<file>]

打印一个模块的帮助并退出。

cmake-modules(7) 手册条目以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-module-list [<file>]

列出可获取帮助的模块并退出。

列表包含所有可以通过使用 `--help-module` 选项后跟模块名称来获取帮助的模块。如果指定了 <file>,则输出将打印到该文件。

--help-modules [<file>]

打印 cmake-modules 手册并退出。

cmake-modules(7) 手册以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-policy <cmp> [<file>]

打印一个策略的帮助并退出。

cmake-policies(7) 手册条目以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-policy-list [<file>]

列出可获取帮助的策略并退出。

列表包含所有可以通过使用 `--help-policy` 选项后跟策略名称来获取帮助的策略。如果指定了 <file>,则输出将打印到该文件。

--help-policies [<file>]

打印 cmake-policies 手册并退出。

cmake-policies(7) 手册以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-property <prop> [<file>]

打印一个属性的帮助并退出。

cmake-properties(7) 手册条目以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-property-list [<file>]

列出可获取帮助的属性并退出。

列表包含所有可以通过使用 `--help-property` 选项后跟属性名称来获取帮助的属性。如果指定了 <file>,则输出将打印到该文件。

--help-properties [<file>]

打印 cmake-properties 手册并退出。

cmake-properties(7) 手册以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-variable <var> [<file>]

打印一个变量的帮助并退出。

cmake-variables(7) 手册条目以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

--help-variable-list [<file>]

列出可获取帮助的变量并退出。

列表包含所有可以通过使用 `--help-variable` 选项后跟变量名称来获取帮助的变量。如果指定了 <file>,则输出将打印到该文件。

--help-variables [<file>]

打印 cmake-variables 手册并退出。

cmake-variables(7) 手册以人类可读的文本格式打印。如果指定了 <file>,则输出将打印到该文件。

另请参阅

以下资源可用于获取使用 CMake 的帮助

主页

https://cmake.com.cn

学习 CMake 的主要起点。

在线文档和社区资源

https://cmake.com.cn/documentation

此网页上可以找到可用文档和社区资源的链接。

论坛

https://discourse.cmake.org

论坛用于讨论和提问 CMake。