cmake [<options>] (<path-to-source> | <path-to-existing-build>) cmake [(-D <var>=<value>)...] -P <cmake-script-file> cmake --build <dir> [<options>...] [-- <build-tool-options>...] cmake --open <dir> cmake -E <command> [<options>...] cmake --find-package <options>...
「cmake」可執行文件是CMake命令行界面。它可用於在腳本中配置項目。可使用-D選項在命令行上指定項目配置設置。html
CMake是一個跨平臺的構建系統生成器。項目使用名稱爲CMakeLists.txt的源樹的每一個目錄中包含的與平臺無關的CMake列表文件指定其構建過程。用戶使用CMake在其平臺上爲本機工具生成構建系統來構建項目。git
-C <initial-cache>
預加載腳本以填充緩存。windows
當cmake首次在空構建樹中運行時,它會建立一個CMakeCache.txt文件,並使用項目的可自定義設置填充它。此選項可用於指定在第一次經過項目的cmake listfiles以前從中加載緩存條目的文件。加載的條目優先於項目的默認值。給定文件應該是包含使用CACHE選項的SET命令的CMake腳本,而不是緩存格式文件。緩存
-D <var>:<type>=<value>, -D <var>=<value>
建立一個cmake緩存條目。服務器
當cmake首次在空構建樹中運行時,它會建立一個CMakeCache.txt文件,並使用項目的可自定義設置填充它。此選項可用於指定優先於項目默認值的設置。能夠根據須要針對儘量多的高速緩存條目重複該選項。app
若是:<type>
給出該部分,則它必須是由指定的類型之一set()
命令文檔的 CACHE
簽名。若是:<type>
省略該部分,則若是條目已不存在,則將建立沒有類型的條目。若是項目中的命令將類型設置爲PATH
或FILEPATH
而後<value>
將轉換爲絕對路徑。less
此選項也能夠做爲單個參數給出: -D<var>:<type>=<value>
或-D<var>=<value>
。ide
-U <globbing_expr>
從CMake緩存中刪除匹配的條目。函數
此選項可用於從CMakeCache.txt文件中刪除一個或多個變量,使用*和?表示表達式。獲得支持。能夠根據須要針對儘量多的高速緩存條目重複該選項。工具
當心使用,可使您的CMakeCache.txt沒法正常工做。
-G <generator-name>
指定構建系統生成器。
CMake可能在某些平臺上支持多個本機構建系統。生成器負責生成特定的構建系統。可能的生成器名稱在。中指定 cmake-generators(7)
手冊。
-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文件的做者,而不是錯誤。
-E <command> [<options>...]
-L[A][H]
列出非高級緩存變量。
列表緩存變量將運行CMake並列出CMake緩存中未標記爲INTERNAL或ADVANCED的全部變量。這將有效地顯示當前的CMake設置,而後可使用-D選項進行更改。更改某些變量可能會致使建立更多變量。若是指定了A,則它還將顯示高級變量。若是指定了H,它還將顯示每一個變量的幫助。
--build <dir>
--open <dir>
-N
僅查看模式。
僅加載緩存。實際上不要運行configure和生成步驟。
-P <file>
處理腳本模式。
將給定的cmake文件處理爲以CMake語言編寫的腳本。不執行配置或生成步驟,而且不修改緩存。若是使用-D定義變量,則必須在-P參數以前完成。
--find-package
--graphviz=[file]
生成依賴關係的graphviz,請參閱 CMakeGraphVizOptions
更多。
生成graphviz輸入文件,該文件將包含項目中的全部庫和可執行依賴項。請參閱文檔 CMakeGraphVizOptions
更多細節。
--system-information [file]
轉儲有關此係統的信息。
轉儲有關當前系統的各類信息。若是從CMake項目的二叉樹頂部運行,它將轉儲其餘信息,如緩存,日誌文件等。
--debug-trycompile
不要刪除try_compile構建樹。僅在一次try_compile上有用。
不要刪除爲try_compile調用建立的文件和目錄。這在調試失敗的try_compiles時頗有用。然而,它可能會改變try-compiles的結果,由於以前的try-compile中的舊垃圾可能致使不一樣的測試沒法正確經過或失敗。此選項最好一次用於一次try-compile,而且僅在調試時使用。
--debug-output
將cmake置於調試模式。
在cmake運行期間打印額外信息,如帶有消息(send_error)調用的堆棧跟蹤。
--trace
將cmake置於跟蹤模式。
打印全部來電的跟蹤記錄。
--trace-expand
將cmake置於跟蹤模式。
喜歡--trace
,但變量擴大了。
--trace-source=<file>
將cmake置於跟蹤模式,但僅輸出指定文件的行。
容許多個選項。
--warn-uninitialized
警告未初始化的值。
使用未初始化的變量時打印警告。
--warn-unused-vars
警告未使用的變量。
查找已聲明或已設置但未使用的變量。
--no-warn-unused-cli
不要警告命令行選項。
找不到在命令行上聲明但未使用的變量。
--check-system-vars
查找系統文件中變量使用的問題。
一般,僅在CMAKE_SOURCE_DIR和CMAKE_BINARY_DIR中搜索未使用和未初始化的變量。該標誌告訴CMake也警告其餘文件。
--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-commands手冊並退出。
該 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-modules手冊並退出。
該 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-variables手動並退出。
該 cmake-variables(7)
手冊以人類可讀的文本格式打印。若是給出,幫助將打印到命名的<f> ile。
CMake提供命令行簽名來構建已生成的項目二叉樹:
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
這將使用如下選項抽象本機構建工具的命令行界面:
--build <dir>
--target <tgt>
<tgt>
而不是默認目標。只能指定一次。
--config <cfg>
<cfg>
。
--clean-first
clean
首先構建目標,而後構建。(僅限清潔,請使用。)
--target clean
--use-stderr
--
沒有選項能夠運行以得到快速幫助。cmake --build
CMake經過簽名提供內置命令行工具:
cmake -E <command> [<options>...]
運行或獲取命令摘要。可用的命令是:cmake -E
cmake -E help
capabilities
以JSON格式報告cmake功能。輸出是一個帶有如下鍵的JSON對象:
version
帶有版本信息的JSON對象。鑰匙是:
string
--version
。
major
minor
patch
suffix
isDirty
generators
列表可用的生成器。每一個生成器都是一個JSON對象,具備如下鍵:
name
toolsetSupport
true
若是生成器支持工具集,
false
不然。
platformSupport
true
若是發電機支持平臺,
false
不然。
extraGenerators
serverMode
true
若是cmake支持服務器模式,
false
不然。
chdir <dir> <cmd> [<arg>...]
compare_files <file1> <file2>
<file1>
相同
<file2>
。若是文件相同,則返回0,不然返回1。
copy <file>... <destination>
<destination>
(文件或目錄)。若是指定了多個文件,則
<destination>
必須是目錄且必須存在。不支持通配符。
copy_directory <dir>... <destination>
<destination>
目錄。若是
<destination>
目錄不存在,則將建立該目錄。
copy_if_different <file>... <destination>
<destination>
若是文件已更改,則將文件複製到(文件或目錄)。若是指定了多個文件,則
<destination>
必須是目錄且必須存在。
echo [<string>...]
echo_append [<string>...]
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...
environment
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>...
-f
選項改變行爲以在這種狀況下返回零退出代碼(即成功)。
remove_directory <dir>
rename <oldname> <newname>
server
cmake-server(7)
模式。
sleep <number>...
tar [cxt][vf][zjJ] file.tar [<options>...] [--] [<file>...]
建立或提取tar或zip存檔。選項包括:
--
-
。
--files-from=<file>
-
除了
--add-file=<name>
添加名稱以其開頭的文件外,行可能沒法啓動
-
。
--mtime=<date>
--format=<format>
7zip
,
gnutar
,
pax
,
paxr
(限制PAX,默認值),和
zip
。
time <command> [<args>...]
touch <file>
touch_nocreate <file>
如下命令僅在UNIX上可用:cmake -E
create_symlink <old> <new>
<new>
命名
<old>
。
注意
<new>
建立符號連接的路徑必須事先存在。
如下命令僅在Windows上可用:cmake -E
delete_regv <key>
env_vs8_wince <sdkname>
env_vs9_wince <sdkname>
write_regv <key> <value>
CMake爲基於Makefile的項目提供了一個幫助程序,其簽名以下:
cmake --find-package <options>...
它以相似pkg-config的模式運行。
使用搜索包 find_package()
並將生成的標誌打印到stdout。這能夠用於使用cmake而不是pkg-config來查找基於Makefile的純項目或基於autoconf的項目(via share/aclocal/cmake.m4
)中的已安裝庫。
注意
因爲某些技術限制,此模式不受支持。它保持兼容性,但不該在新項目中使用。
如下資源可用於使用CMake獲取幫助:
瞭解CMake的主要出發點。
https://cmake.org/Wiki/CMake_FAQ
提供Wiki,其中包含常見問題的答案。
https://cmake.org/documentation
可在此網頁上找到可用文檔的連接。
https://cmake.org/mailing-lists
有關使用cmake的幫助和討論,cmake @ cmake提供了一個郵件列表。組織。該列表僅限會員,但能夠在CMake網頁上註冊。在將問題發佈到列表以前,請先閱讀https://cmake.org上的完整文檔。