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>
-
創建或更新CMake
CACHE
條目。第一次在空的構建樹中運行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-trace
Google跟蹤格式的輸出,可以通過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 -E
cmake -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