Generate a Project Buildsystem
cmake [<options>] <path-to-source>
cmake [<options>] <path-to-existing-build>
cmake [<options>] -S <path-to-source> -B <path-to-build>
Build a Project
cmake --build <dir> [<options>] [-- <build-tool-options>]
Install a Project
cmake --install <dir> [<options>]
Open a Project
cmake --open <dir>
Run a Script
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
Run a Command-Line Tool
cmake -E <command> [<options>]
Run the Find-Package Tool
cmake --find-package [<options>]
View Help
cmake --help[-<topic>]
cmake可执行文件是跨平台构建系统生成器cmake的命令行界面。上面的概要列出了工具可以执行的各种操作,如下面各节所述。
要使用 CMake 构建软件项目,请参考目录【生成项目构建系统】。
可以选择使用 cmake 来【构建项目】、【安装项目】或直接运行相应的构建工具(例如 make)。 cmake 也可用于【查看帮助】。
其他操作旨在供软件开发人员使用 CMake language编写脚本来支持他们的构建。
有关可用于代替 cmake 的图形用户界面,请参阅 ccmake 和 cmake-gui。 有关 CMake 测试和打包工具的命令行界面,请参阅 ctest 和 cpack。
有关 CMake 的更多信息,【另请参阅】本手册末尾的链接。
[构建系统]描述了如何使用构建工具从源代码构建项目的可执行文件和库,从而实现该过程的自动化。举个例子
为了避免维护多个这样的构建系统,项目可以使用CMake语言编写的文件抽象地指定其构建系统。从这些文件中,CMake通过一个名为generator的后端在本地为每个用户生成一个首选[构建系统]。
要用CMake生成一个构建系统,必须选择以下选项:
cmake --help
查看本地可用的生成器列表。-G
选项来指定一个生成器,或者简单地接受当前平台的默认CMake选项。当使用命令行构建工具生成器时,CMake期望编译器工具链所需的环境已经在shell中配置好了。当使用IDE构建工具生成器时,不需要特定的环境。
使用以下命令签名之一运行CMake来指定源代码和构建树并生成一个构建系统:
cmake [
$ mkdir build ; cd build
$ cmake ../src
cmake [
作为构建树,并从它的CMakeCache.txt文件加载到源树的路径,该文件必须已经由之前的CMake运行生成。$ cd build
$ cmake .
cmake [
$ cmake -S src -B build
在所有情况下,可以是下面的0个或多个【options】。
在生成构建系统之后,可以使用相应的本地构建工具来构建项目。例如,在使用Unix Makefiles生成器后,可以直接运行make:
$ make
$ make install
或者,可以使用cmake自动选择并调用适当的本地构建工具来构【构建项目】。
-S
-B
-C
-D :
:
部分,则它必须是set()命令文档为其缓存签名指定的类型之一。:
部分,那么如果条目不存在且已经存在类型,则将不使用类型创建条目。
将转换为绝对路径。-D:=
或-D=
。-U
-G
-T
-A
-Wno-dev
-Wdev
-Wno-error=dev
-Wdeprecated
-Wno-deprecated
-Werror=deprecated
-Wno-error=deprecated
-L[A][H]·
列出非高级缓存变量。
List CACHE variables将运行CMake并列出CMake缓存中未标记为内部()(INTERNAL)或高级(ADVANCED)的所有变量。
这将有效地显示当前的CMake设置,然后可以使用-D选项进行更改。
更改某些变量可能会导致创建更多的变量。
如果指定了A,那么它还将显示高级变量。
如果指定了H,它还将显示每个变量的帮助。
-N
--graphviz=[file]
--system-information [file]
--loglevel=
--debug-trycompile
--debug-output
--trace
--trace-expand
--trace-source=
--warn-uninitialized
--warn-unused-vars
--no-warn-unused-cli
--check-system-vars
CMake提供了一个命令行签名来构建已经生成的项目二叉树
cmake --build
这将使用以下选项抽象本机构建工具的命令行界面:
--install
--config
--component
。--prefix
--strip
-v, --verbose
运行cmake–install,没有快速帮助选项。
cmake --open
在关联的应用程序中打开生成的项目。只有某些生成器支持此功能
cmake [{-D =
以cmake语言编写的脚本的形式处理给定的cmake文件。不执行配置或生成步骤,缓存不会被修改。如果使用-D定义变量,则必须在-P参数之前完成。
CMake通过签名提供了内置的命令行工具
cmake -E
执行cmake -E或cmake -E help查看命令汇总。可用的命令是:
capabilities
:以JSON格式报告cmake功能。输出是一个JSON对象,包含以下键:
version
:一个带有版本信息的JSON对象。键是:
string
:由cmake–version显示的完整版本字符串。major
:整数形式的主版本号。minor
:整数形式的次要版本号。patch
:整数形式的补丁级别。suffix
:cmake版本后缀字符串。isDirty
:如果cmake生成来自 dirty tree,则设置bool。generators
:可用生成器列表。每个生成器都是一个带有以下键的JSON对象:
name
:包含生成器名称的字符串。toolsetSupport
:如果生成器支持工具集,则为true,否则为false。platformSupport
:如果生成器支持平台,则为true,否则为false。extraGenerators
:包含与生成器兼容的所有额外生成器的字符串列表。fileApi
:当cmake-file-api(7)可用时出现的可选成员。该值是一个包含一个成员的JSON对象:
requests
:包含零个或多个受支持的文件api请求的JSON数组。每个请求都是一个JSON对象,其成员为:
kind
:指定支持的对象类型之一。version
:一个JSON数组,其元素都是JSON对象,包含指定非负整数版本组件的主要和次要成员。serverMode
:如果cmake支持服务器模式,则为true,否则为false。chdir [...]
compare_files [--ignore-eol]
copy ...
copy_directory ...
copy_if_different ...
echo [...]
echo_append [...]
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...
environment
make_directory ...
md5sum ...
351abe79cd3800b38cdfb25d45015a15 file1.txt
052f86c15bbde68af55c7f7b340ab639 file2.txt
sha1sum ...
4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt
1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
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 [
--help-full [