2020年12月13日00:14:17

cmake命令行官方文档:https://cmake.org/cmake/help/v3.19/manual/cmake.1.html#run-the-find-package-tool

注意选择对应版本

官方文档地址:https://cmake.org/documentation

中文入门教程:https://www.hahack.com/codes/cmake/#

概要

生成项目构建系统
 cmake [<选项>] <源路径>
 cmake [<选项>] <现有构建路径>
 cmake [<选项>] -S <源路径> -B <构建路径>

建立一个项目
 cmake --build <目录> [<选项>] [-<构建工具选项>]

安装项目
 cmake --install <目录> [<选项>]

打开一个项目
 cmake --open <目录>

运行脚本
 cmake [{-D <var> = <值>} ...] -P <cmake-script-file>

运行命令行工具
 cmake -E <命令> [<选项>]

运行查找包工具
 cmake --find-package [<选项>]

查看帮助
 cmake --help [-<topic>]

描述

所述cmake的可执行文件是跨平台的构建系统CMake的发电机的命令行界面。上面的摘要列出了该工具可以执行的各种操作,如下节所述。

要使用CMake构建软件项目,请生成项目构建系统。(可选)使用cmake来构建项目,安装项目或直接运行相应的构建工具(例如make)。 cmake也可以用于查看帮助。

其他动作供软件开发人员在脚本中编写脚本时使用。 CMake language 支持他们的构建。

有关可以代替cmake使用的图形用户界面,请参见ccmake 和 cmake-gui。有关CMake测试和打包工具的命令行界面,请参阅ctest 和 cpack。

有关CMake的更多信息,另请参阅本手册末尾的链接。

CMake构建系统简介

一个构建系统描述了如何使用构建工具从其源代码构建项目的可执行文件和库,以使过程自动化。例如,构建系统可能是Makefile与命令行 make工具或集成开发环境(IDE)的项目文件一起使用的。为了避免维护多个这样的构建系统,项目可以使用编写在计算机中的文件抽象地指定其构建系统。 CMake language。CMake通过这些文件通过称为生成器的后端为每个用户本地生成首选的构建系统。

要使用CMake生成构建系统,必须选择以下内容:

源树

包含项目提供的源文件的顶级目录。该项目使用文件中指定的文件指定其构建系统,如 cmake-language(7)手册,从名为的顶级文件开始 CMakeLists.txt。这些文件指定了构建目标及其依赖性,如cmake-buildsystem(7) 手册。

建立树

要在其中存储构建系统文件和构建输出工件(例如,可执行文件和库)的顶级目录。CMake将编写一个CMakeCache.txt文件来将该目录标识为构建树,并存储诸如构建系统配置选项之类的持久性信息。

要维护原始的源树,请使用单独的专用构建树执行源外构建。一个在源构建在构建树被放置在同一个目录下的源代码树也支持,但不鼓励。

发电机

这选择了要生成的构建系统的类型。见 cmake-generators(7)所有发电机文档手册。运行以查看本地可用的发电机列表。(可选)使用下面的选项来指定生成器,或者简单地接受当前平台为默认的CMake选择。cmake --help-G

使用命令行构建工具生成器之一时, CMake期望在外壳中已经配置了编译器工具链所需的环境。使用 IDE生成工具生成器之一时,不需要特定的环境。

生成项目构建系统

使用以下命令签名之一运行CMake以指定源和构建树并生成构建系统:

cmake [<options>] <path-to-source>

将当前工作目录用作构建树和 <path-to-source>源树。指定的路径可以是绝对路径,也可以是相对于当前工作目录的路径。源树必须包含一个CMakeLists.txt文件,并且 不能包含一个CMakeCache.txt文件,因为后者标识了一个现有的构建树。例如:

$ mkdir build ; cd build
$ cmake ../src

cmake [<options>] <path-to-existing-build>

用途<path-to-existing-build>为构建树,和负载路径,从它的源代码树CMakeCache.txt文件,该文件必须已经通过CMake的上次运行产生。指定的路径可以是绝对路径,也可以是相对于当前工作目录的路径。例如:

$ cd build
$ cmake .

cmake [<options>] -S <path-to-source> -B <path-to-build>

使用<path-to-build>作为构建树<path-to-source> 作为源代码树。指定的路径可以是绝对路径,也可以是相对于当前工作目录的路径。源树必须包含一个 CMakeLists.txt文件。如果构建树尚不存在,则会自动创建。例如:

$ cmake -S src -B build

在所有情况下<options>,以下选项可能为零或多个。

生成构建系统后,可以使用相应的本机构建工具来构建项目。例如,使用 Unix Makefiles发电机一可以make直接运行:

$ make $ make install

或者,可以通过自动选择并调用适当的本机构建工具来使用cmake来构建项目。

选项

-S <path-to-source>

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

-B <path-to-build>

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

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

-C <initial-cache>

预加载脚本以填充缓存。

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

参考 CMAKE_SOURCE_DIR 和 CMAKE_BINARY_DIR 在脚本中评估到顶级源和构建树。

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

创建或更新CMakeCACHE条目。

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

如果:<type>给出了该部分,则必须是该部分指定的类型之一set()命令文档以获取其 CACHE签名。如果:<type>省略了该部分,那么如果该条目已经不存在类型,则将不创建任何类型的条目。如果项目中的命令将类型设置为PATH或FILEPATH ,<value>则将转换为绝对路径。

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

-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 变量以获取详细信息。

-Wno-dev

禁止开发人员警告。

禁止发给CMakeLists.txt文件作者的警告 。默认情况下,这还将关闭弃用警告。

-Wdev

启用开发人员警告。

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

-Werror=dev

使开发人员警告错误。

做出警告,警告CMakeLists.txt文件错误的作者。默认情况下,这还将打开已弃用的警告作为错误。

-Wno-error=dev

使开发人员警告而不是错误。

发出警告CMakeLists.txt文件的作者而不是错误。默认情况下,这还将关闭已弃用的警告作为错误。

-Wdeprecated

启用不建议使用的功能警告。

启用针对已过时功能的使用的警告,这些警告是针对CMakeLists.txt文件作者的。

-Wno-deprecated

禁止使用不建议使用的功能警告。

禁止使用已过时的功能的警告,这些警告是针对CMakeLists.txt文件作者的。

-Werror=deprecated

使过时的宏和功能警告错误。

对已过时的宏和函数的使用发出警告,这些警告是针对CMakeLists.txt文件作者的,错误。

-Wno-error=deprecated

使已弃用的宏和功能警告而不是错误。

对CMakeLists.txt文件的作者(而不是错误)使用已过时的宏和函数进行警告。

-L[A][H]

列出非高级缓存变量。

列出CACHE变量将运行CMake并列出CMake中所有CACHE未标记为INTERNAL或的变量ADVANCED。这将有效显示当前的CMake设置,然后可以使用-D选项进行更改。更改某些变量可能会导致创建更多变量。如果A指定,则还将显示高级变量。如果H指定,还将显示每个变量的帮助。

-N

仅查看模式。

只加载缓存。请勿实际运行配置和生成步骤。

--graphviz=[file]

生成依赖关系的graphviz,请参见 CMakeGraphVizOptions 更多。

生成一个graphviz输入文件,其中将包含项目中的所有库和可执行文件依赖项。请参阅有关的文档 CMakeGraphVizOptions 更多细节。

--system-information [file]

转储有关此系统的信息。

转储有关当前系统的各种信息。如果从CMake项目的二进制树的顶部运行,它将转储其他信息,例如缓存,日志文件等。

--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>

设置日志级别。

的 message()命令将仅输出指定日志级别或更高级别的消息。默认日志级别为STATUS。

为了使日志级别在CMake运行之间持续存在,请设置 CMAKE_MESSAGE_LOG_LEVEL作为缓存变量。如果同时给出了命令行选项和变量,则命令行选项优先。

出于向后兼容性的原因,--loglevel该选项也被接受为同义词。

--log-context

启用 message() 命令输出附加到每个消息的上下文。

此选项打开,仅显示当前CMake运行的上下文。为了使显示上下文对于所有后续的CMake运行都是持久的,设置 CMAKE_MESSAGE_CONTEXT_SHOW作为缓存变量。给出此命令行选项后,CMAKE_MESSAGE_CONTEXT_SHOW 被忽略。

--debug-trycompile

不要删除 try_compile()建立树。仅对一个有用try_compile() 一次。

不要删除为其创建的文件和目录 try_compile() 电话。这对于调试失败的try_compiles非常有用。但是,它可能会更改尝试编译的结果,因为来自先前尝试编译的旧垃圾可能会导致不同的测试通过或错误地失败。此选项最好一次仅用于调试时,一次用于一次尝试编译。

--debug-output

将cmake置于调试模式。

在cmake运行期间打印额外的信息,例如使用堆栈跟踪 message(SEND_ERROR) 电话。

--debug-find

将cmake find命令置于调试模式。

在cmake运行到标准错误期间,打印其他查找呼叫信息。输出旨在供人类使用,而不用于解析。另请参阅CMAKE_FIND_DEBUG_MODE 变量,用于调试项目的更本地部分。

--trace

将cmake置于跟踪模式。

打印所有呼叫以及从何处发出的所有呼叫的记录。

--trace-expand

将cmake置于跟踪模式。

类似于--trace,但变量已扩展。

--trace-format=<format>

将cmake置于跟踪模式,并设置跟踪输出格式。

<format> 可以是以下值之一。

human

以人类可读的格式打印每条跟踪线。这是默认格式。

json-v1

将每一行打印为单独的JSON文档。每个文档用换行符(\n)分隔。保证在JSON文档中不会出现换行符。

JSON跟踪格式:

{ "file": "/full/path/to/the/CMake/file.txt", "line": 0, "cmd": "add_executable", "args": ["foo", "bar"], "time": 1579512535.9687231, "frame": 2 }

成员是:

file

调用该函数的CMake源文件的完整路径。

line

在该行file的函数调用。

defer

延迟函数调用时存在的可选成员 cmake_language(DEFER)。如果存在,则其值为包含延迟调用的字符串<id>。

cmd

调用的函数的名称。

args

所有功能参数的字符串列表。

time

函数调用的时间戳记(自纪元以来的秒数)。

frame

所调用函数的堆栈帧深度。

此外,输出的第一个JSON文档包含version当前主要和次要版本的 密钥。

JSON跟踪格式:

{ "version": { "major": 1, "minor": 1 } }

成员是:

version

表示JSON格式的版本。该版本具有主要和次要组件,遵循语义版本约定。

--trace-source=<file>

将cmake置于跟踪模式,但仅输出指定文件的行。

允许多个选项。

--trace-redirect=<file>

将cmake置于跟踪模式,并将跟踪输出重定向到文件而不是stderr。

--warn-uninitialized

警告未初始化的值。

使用未初始化的变量时打印警告。

--warn-unused-vars

什么也没做。在3.2和更低版本的CMake中,此功能启用有关未使用变量的警告。在CMake 3.3至3.18版本中,该选项已损坏。在CMake 3.19及更高版本中,该选项已被删除。

--no-warn-unused-cli

不要警告命令行选项。

找不到在命令行上声明但未使用的变量。

--check-system-vars

查找系统文件中变量用法的问题。

通常,仅在以下位置搜索未使用和未初始化的变量 CMAKE_SOURCE_DIR 和 CMAKE_BINARY_DIR。该标志告诉CMake也警告其他文件。

--profiling-output=<path>

结合使用--profiling-format以输出到给定的路径。

--profiling-format=<file>

启用以给定格式的CMake脚本的概要分析数据的输出。

这可以帮助执行的CMake脚本进行性能分析。应该使用第三方应用程序将输出处理为可读格式。

当前支持的值为: google-traceGoogle跟踪格式的输出,可以通过Google Chrome的about:tracing选项卡或使用Trace Compass等工具的插件来解析 。

--preset=<preset>

读一个 preset来自 <path-to-source>/CMakePresets.json和 <path-to-source>/CMakeUserPresets.json。预设指定生成器和构建目录,并可选地指定要传递给CMake的变量和其他参数的列表。的CMake GUI还可以识别CMakePresets.json并CMakeUserPresets.json归档。有关这些文件的完整详细信息,请参见cmake-presets(7)。

在读取所有其他命令行选项之前先读取预设。预设指定的选项(变量,生成器等)都可以通过在命令行上手动指定它们来覆盖。例如,如果预设将变量设置MYVAR为1,但是用户2使用-D参数将其设置为, 2则首选该值。

建立一个工程

CMake提供了一个命令行签名来构建一个已经生成的项目二进制树:

cmake --build <dir> [<options>] [-- <build-tool-options>]

这将抽象本机构建工具的命令行界面,其中包含以下选项:

--build <dir>

要构建的项目二进制目录。这是必需的,必须首先。

--parallel [<jobs>], -j [<jobs>]

构建时要使用的最大并发进程数。如果<jobs>省略If,则使用本机构建工具的默认编号。

的 CMAKE_BUILD_PARALLEL_LEVEL 如果设置了环境变量,则在未提供此选项时指定默认的并行级别。

一些本地构建工具总是并行构建。<jobs> 值的使用1可用于限制单个作业。

--target <tgt>..., -t <tgt>...

生成<tgt>而不是默认目标。可以指定多个目标,以空格分隔。

--config <cfg>

对于多配置工具,请选择configuration <cfg>。

--clean-first

clean首先构建目标,然后构建。(仅用于清洁,请使用。)--target clean

--use-stderr

忽略了。在CMake> = 3.0中,行为是默认的。

--verbose, -v

启用详细输出(如果支持),包括要执行的构建命令。

如果该选项可以省略 VERBOSE 环境变量或 CMAKE_VERBOSE_MAKEFILE 设置了缓存变量。

--

将其余选项传递给本机工具。

不带选项运行即可获得快速帮助。cmake --build

安装项目

CMake提供了一个命令行签名来安装已经生成的项目二进制树:

cmake --install <dir> [<options>]

可以在构建项目以运行安装后使用它,而无需使用生成的构建系统或本机构建工具。选项包括:

--install <dir>

要安装的项目二进制目录。这是必需的,必须首先。

--config <cfg>

对于多配置生成器,请选择configuration <cfg>。

--component <comp>

基于组件的安装。仅安装组件<comp>。

--default-directory-permissions <permissions>

默认目录安装权限。格式许可<u=rwx,g=rx,o=rx>。

--prefix <prefix>

覆盖安装前缀, CMAKE_INSTALL_PREFIX。

--strip

在安装之前将其剥离。

-v, --verbose

启用详细输出。

如果该选项可以省略 VERBOSE 环境变量已设置。

不带选项运行即可获得快速帮助。cmake --install

打开一个项目

cmake --open <dir>

在关联的应用程序中打开生成的项目。仅某些生成器支持。

运行脚本

cmake [{-D <var>=<value>}...] -P <cmake-script-file> [-- <unparsed-options>...]

将给定的cmake文件作为以CMake语言编写的脚本进行处理。不执行配置或生成步骤,并且不修改缓存。如果使用定义了变量-D,则必须在-P参数之前完成。

之后的任何选项--都不会被CMake解析,但它们仍包含在CMAKE_ARGV<n>传递给脚本的变量(包括--自身)。

运行命令行工具

CMake通过签名提供内置的命令行工具

cmake -E <command> [<options>]

运行或获取命令摘要。可用的命令有:cmake -Ecmake -E help

capabilities

以JSON格式报告cmake功能。输出是具有以下键的JSON对象:

version

具有版本信息的JSON对象。关键是:

string

完整版本字符串,由cmake显示--version。

major

整数形式的主要版本号。

minor

次要版本号,以整数形式表示。

patch

整数形式的补丁程序级别。

suffix

cmake版本的后缀字符串。

isDirty

如果cmake构建来自肮脏的树,则设置为布尔值。

generators

可用发电机列表。每个生成器都是具有以下键的JSON对象:

name

包含生成器名称的字符串。

toolsetSupport

true生成器是否支持工具集,false否则。

platformSupport

true如果生成器支持平台,则为false其他方式。

extraGenerators

具有与生成器兼容的所有其他生成器的字符串列表。

fileApi

可选成员,当 cmake-file-api(7) 可用。该值是具有一个成员的JSON对象:

requests

包含零个或多个受支持的file-api请求的JSON数组。每个请求都是一个具有成员的JSON对象:

kind

指定支持的对象种类之一。

version

一个JSON数组,其元素都是一个JSON对象,其中包含 major和minor成员,这些成员指定非负整数版本组件。

serverMode

true如果cmake支持服务器模式,则为false其他。

cat <files>...

连接文件并在标准输出上打印。

chdir <dir> <cmd> [<arg>...]

更改当前工作目录并运行命令。

compare_files [--ignore-eol] <file1> <file2>

检查是否<file1>与相同<file2>。如果文件相同,则返回0,否则返回1。如果参数无效,则返回2。该--ignore-eol选项表示逐行比较,并且忽略LF / CRLF差异。

copy <file>... <destination>

将文件复制到<destination>(文件或目录)。如果指定了多个文件,则<destination>必须为目录且必须存在。不支持通配符。 copy确实遵循符号链接。这意味着它不会复制符号链接,但是会复制它指向的文件或目录。

copy_directory <dir>... <destination>

将<dir>...目录内容复制到<destination>目录。如果<destination>目录不存在,它将被创建。 copy_directory确实遵循符号链接。

copy_if_different <file>... <destination>

<destination>如果文件已更改,则将其复制到(文件或目录)。如果指定了多个文件,则<destination>必须为目录且必须存在。 copy_if_different确实遵循符号链接。

create_symlink <old> <new>

创建一个符号链接<new>命名<old>。

注意

<new>必须预先存在要创建符号链接的路径。

create_hardlink <old> <new>

创建一个硬链接<new>命名<old>。

注意

<new>必须预先存在要创建硬链接的路径。 <old>必须事先存在。

echo [<string>...]

将参数显示为文本。

echo_append [<string>...]

将参数显示为文本,但不显示新行。

env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...

在修改后的环境中运行命令。

environment

显示当前环境变量。

false

不执行任何操作,退出代码为1。

make_directory <dir>...

创建<dir>目录。如有必要,也创建父目录。如果目录已经存在,它将被静默忽略。

md5sum <file>...

以md5sum兼容格式创建文件的MD5校验和:

351abe79cd3800b38cdfb25d45015a15  file1.txt
052f86c15bbde68af55c7f7b340ab639  file2.txt

sha1sum <file>...

以sha1sum兼容格式创建文件的SHA1校验和:

4bb7932a29e6f73c97bb9272f2bdc393122f86e0  file1.txt
1df4c8f318665f9a5f2ed38f55adadb7ef9f559c  file2.txt

sha224sum <file>...

以sha224sum兼容格式创建文件的SHA224校验和:

b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930  file1.txt
6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24  file2.txt

sha256sum <file>...

以sha256sum兼容格式创建文件的SHA256校验和:

76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc  file1.txt
15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea  file2.txt

sha384sum <file>...

以sha384sum兼容格式创建文件的SHA384校验和:

acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434  file1.txt
668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d  file2.txt

sha512sum <file>...

以sha512sum兼容格式创建文件的SHA512校验和:

2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89  file1.txt
7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d  file2.txt

remove [-f] <file>...

从3.17版开始不推荐使用。

删除文件。计划的行为是,如果列出的文件已经不存在,该命令将返回非零退出代码,但不会记录任何消息。-f在这种情况下,该选项将更改行为以返回零退出代码(即成功)。 remove不遵循符号链接。这意味着它将仅删除符号链接,而不删除其指向的文件。

该实现有错误,始终返回0。在不破坏向后兼容性的情况下就无法修复该实现。使用rm代替。

remove_directory <dir>...

从3.17版开始不推荐使用。

删除<dir>目录及其内容。如果目录不存在,它将被静默忽略。如果<dir>是目录的符号链接,则仅符号链接将被删除。使用rm代替。

rename <oldname> <newname>

重命名文件或目录(在一个卷上)。如果具有该<newname>名称的文件已经存在,那么它将被静默替换。

rm [-rRf] <file> <dir>...

删除文件<file>或目录dir。使用-r或-R递归删除目录及其内容。如果列出的文件/目录中的任何一个都不存在,该命令将返回非零的退出代码,但不会记录任何消息。-f在这种情况下,该选项将更改行为以返回零退出代码(即成功)。

server

发射 cmake-server(7) 模式。

sleep <number>...

睡眠指定的秒数。

tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...]

创建或提取tar或zip存档。选项有:

c

创建一个包含指定文件的新存档。如果使用,则该<pathname>...参数是必需的。

x

从存档中提取到磁盘。该<pathname>...参数可用于仅提取选定的文件或目录。提取所选文件或目录时,必须提供其确切名称,包括路径(如列表(-t)所示)。

t

列出存档内容。该<pathname>...参数可用于仅列出选定的文件或目录。

v

产生详细的输出。

z

使用gzip压缩生成的档案。

j

使用bzip2压缩生成的存档。

J

用XZ压缩生成的档案。

--zstd

使用Zstandard压缩生成的存档。

--files-from=<file>

从给定文件中读取文件名,每行读取一个。空行将被忽略。- 除了--add-file=<name>添加名称以开头的文件外,其他行不能以开头-。

--format=<format>

指定要创建的归档的格式。支持的格式有:7zip,gnutar,pax, paxr(限制PAX,默认值),和zip。

--mtime=<date>

指定记录在tarball条目中的修改时间。

--

停止解释选项,并将所有剩余参数视为文件名,即使它们以开头-。

time <command> [<args>...]

运行命令并显示经过的时间。

touch <file>...

<file>如果文件不存在,则创建。如果<file>存在,则它正在更改<file>访问和修改时间。

touch_nocreate <file>...

触摸文件(如果存在)但不创建它。如果文件不存在,它将被静默忽略。

true

退出代码为0,则不执行任何操作。

Windows特定的命令行工具

以下命令仅在Windows上可用:cmake -E

delete_regv <key>

删除Windows注册表值。

env_vs8_wince <sdkname>

显示一个批处理文件,该文件为VS2005中安装的提供的Windows CE SDK设置了环境。

env_vs9_wince <sdkname>

显示一个批处理文件,该文件为VS2008中安装的提供的Windows CE SDK设置了环境。

write_regv <key> <value>

写入Windows注册表值。

运行查找包工具

CMake为基于Makefile的项目提供了pkg-config之类的帮助器:

cmake --find-package [<options>]

它使用 find_package()并将结果标志打印到stdout。可以使用它代替pkg-config来在基于普通Makefile的项目或基于autoconf的项目(通过中share/aclocal/cmake.m4)中找到已安装的库。

注意

由于某些技术限制,该模式没有得到很好的支持。保留它是出于兼容性考虑,但不应在新项目中使用。

查看帮助

要从CMake文档中打印选定的页面,请使用

cmake --help[-<topic>]

具有以下选项之一:

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

打印使用信息并退出。

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

--version,-version,/V [<f>]

显示程序名称/版本标语并退出。

如果指定了文件,则将版本写入其中。如果给出帮助,则将打印到名为<f> ile的文件。

--help-full [<f>]

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

所有手册均以人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

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

指定的手册以人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

列出可用的帮助手册,然后退出。

该列表包含所有手册,可以通过在--help-manual选项后加上手册名称来获得帮助。如果给出帮助,则将打印到名为<f> ile的文件。

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

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

的 cmake-commands(7)的手动输入以<cmd>人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

列出具有可用帮助的命令,然后退出。

该列表包含所有可通过使用--help-command选项后跟命令名称获得帮助的命令。如果给出帮助,则将打印到名为<f> ile的文件。

--help-commands [<f>]

打印cmake命令手册并退出。

的 cmake-commands(7)手册以易于阅读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

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

的 cmake-modules(7)的手动输入以<mod>人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

列出可用的帮助模块,然后退出。

该列表包含所有模块,可以通过使用--help-module选项后跟模块名称来获得帮助。如果给出帮助,则将打印到名为<f> ile的文件。

--help-modules [<f>]

手动打印cmake模块并退出。

的 cmake-modules(7)手册以易于阅读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

打印一项政策的帮助并退出。

的 cmake-policies(7)的手动输入以<cmp>人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

列出具有可用帮助的策略,然后退出。

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

--help-policies [<f>]

打印cmake-policies手册并退出。

的 cmake-policies(7)手册以易于阅读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

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

的 cmake-properties(7)手册条目以<prop>人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

列出属性并提供帮助,然后退出。

该列表包含所有属性,可以通过在--help-property选项后加上属性名称来获得帮助。如果给出帮助,则将打印到名为<f> ile的文件。

--help-properties [<f>]

打印cmake-properties手册并退出。

的 cmake-properties(7)手册以易于阅读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

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

的 cmake-variables(7)的手动输入以<var>人类可读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

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

列出变量并提供帮助,然后退出。

该列表包含所有变量,可以通过使用--help-variable选项后跟变量名称来获得帮助。如果给出帮助,则将打印到名为<f> ile的文件。

--help-variables [<f>]

打印cmake变量手册并退出。

的 cmake-variables(7)手册以易于阅读的文本格式打印。如果给出帮助,则将打印到名为<f> ile的文件。

要查看可用于项目的预设,请使用

cmake <source-dir> --list-presets