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 参数设置了相同的变量,则无论顺序如何,-D 参数都将优先,因为非 FORCE set(... CACHE ...) 调用的性质。

-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 [<file>], --version [<file>], /V [<file>]

显示程序名称/版本横幅并退出。如果给定,输出将打印到指定 <file>

-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>]

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

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

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

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

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

--help-commands [<file>]

打印 cmake-commands 手册并退出。

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

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

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

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

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

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

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

--help-modules [<file>]

打印 cmake-modules 手册并退出。

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

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

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

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

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

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

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

--help-policies [<file>]

打印 cmake-policies 手册并退出。

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

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

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

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

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

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

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

--help-properties [<file>]

打印 cmake-properties 手册并退出。

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

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

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

<var> 相关的 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。