cmake-cmake.1-3.11.4機翻

這記錄了舊版本的CMake。  單擊此處查看最新版本。  或者,從上面的下拉菜單中選擇一個版本。

cmake(1)

概要

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>省略部分,則若是條目已不存在,則將建立沒有類型的條目。若是項目中的命令將類型設置爲PATHFILEPATH 而後<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> = 3.0中是默認的。
--
將剩餘選項傳遞給本機工具。

沒有選項能夠運行以得到快速幫助。cmake --build

命令行工具模式

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構建來自髒樹,則設置bool。
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>
指定tarball條目中記錄的修改時間。
--format=<format>
指定要建立的存檔的格式。支持的格式有: 7zip gnutar pax ,  paxr (限制PAX,默認值),和 zip
time <command> [<args>...]
運行命令並顯示已用時間。
touch <file>
觸摸文件。
touch_nocreate <file>
觸摸文件(若是存在)但不建立它。若是文件不存在,則會以靜默方式忽略。

特定於UNIX的命令行工具

如下命令僅在UNIX上可用:cmake -E

create_symlink <old> <new>
建立符號連接 <new> 命名 <old>

注意

 

<new>建立符號連接的路徑必須事先存在。

特定於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的項目提供了一個幫助程序,其簽名以下:

cmake --find-package <options>... 

它以相似pkg-config的模式運行。

使用搜索包 find_package()並將生成的標誌打印到stdout。這能夠用於使用cmake而不是pkg-config來查找基於Makefile的純項目或基於autoconf的項目(via share/aclocal/cmake.m4)中的已安裝庫

注意

 

因爲某些技術限制,此模式不受支持。它保持兼容性,但不該在新項目中使用。

另見

如下資源可用於使用CMake獲取幫助:

主頁

https://cmake.org

瞭解CMake的主要出發點。

常常問的問題

https://cmake.org/Wiki/CMake_FAQ

提供Wiki,其中包含常見問題的答案。

在線文檔

https://cmake.org/documentation

可在此網頁上找到可用文檔的連接。

郵件列表

https://cmake.org/mailing-lists

有關使用cmake的幫助和討論,cmake @ cmake提供了一個郵件列表組織該列表僅限會員,但能夠在CMake網頁上註冊。在將問題發佈到列表以前,請先閱讀https://cmake.org上的完整文檔

 
相關文章
相關標籤/搜索