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 是一个跨平台构建系统生成器。项目使用平台无关的 CMake 列表文件指定其构建过程,这些文件包含在源树的每个目录中,名称为 CMakeLists.txt。用户通过使用 CMake 为其平台上的本机工具生成构建系统来构建项目。

选项

-S <path-to-source>

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

-B <path-to-build>

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

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

-C <initial-cache>

预加载一个脚本以填充缓存。

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

脚本中对 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 参数设置了相同的变量,则由于非 FORCE set(... CACHE ...) 调用的性质,-D 参数将优先,而与顺序无关。

-U <globbing_expr>

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

此选项可用于从 CMakeCache.txt 文件中删除一个或多个变量,支持使用 *? 的 globbing 表达式。可以根据需要重复此选项以设置任意数量的 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> 必须是以下之一

dev

将开发者警告视为错误。

将旨在供 CMakeLists.txt 文件作者使用的警告视为错误。默认情况下,这也会将弃用警告视为错误。

deprecated

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

将对已弃用的宏和函数的使用警告(这些警告旨在供 CMakeLists.txt 文件的作者使用)视为错误。

-Wno-error=<what>

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

dev

将旨在供 CMakeLists.txt 文件作者使用的警告不视为错误。默认情况下,这也会关闭将弃用警告视为错误。

deprecated

将对已弃用的宏和函数的使用警告(这些警告旨在供 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

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

Discourse 论坛

https://discourse.cmake.org

Discourse 论坛托管关于 CMake 的讨论和问题。