ccmake(1)¶
概要¶
ccmake [<options>] -B <path-to-build> [-S <path-to-source>]
ccmake [<options>] <path-to-source | path-to-existing-build>
描述¶
ccmake 執行檔是 CMake 的 curses 介面。專案組態設定可以透過此 GUI 互動式地指定。當程式執行時,終端機底部會提供簡要說明。
CMake 是一個跨平台建置系統產生器。專案使用平台獨立的 CMake 清單檔案指定其建置流程,這些檔案包含在原始碼樹狀結構的每個目錄中,名稱為 CMakeLists.txt
。使用者透過使用 CMake 為其平台上的原生工具產生建置系統來建置專案。
選項¶
- -S <path-to-source>¶
要建置的 CMake 專案根目錄路徑。
- -B <path-to-build>¶
CMake 將用作建置目錄根目錄的路徑。
如果目錄尚不存在,CMake 將會建立它。
- -C <initial-cache>¶
預先載入腳本以填充快取。
當 CMake 首次在空的建置樹狀結構中執行時,它會建立一個
CMakeCache.txt
檔案,並使用專案的可自訂設定來填充它。此選項可用於指定一個檔案,從該檔案載入快取條目,然後再首次遍歷專案的 CMake 清單檔案。載入的條目優先於專案的預設值。給定的檔案應該是一個包含set()
命令的 CMake 腳本,該命令使用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>
。重要的是要注意
-C
和-D
參數的順序非常重要。它們將按照列出的順序執行,最後一個參數優先於前一個參數。例如,如果您指定-DCMAKE_BUILD_TYPE=Debug
,然後是一個-C
參數,其中包含一個調用set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
的檔案,則
-C
參數將優先,並且CMAKE_BUILD_TYPE
將設定為Release
。但是,如果-D
參數在-C
參數之後,它將設定為Debug
。如果
-C
檔案中的set(... CACHE ...)
呼叫未使用FORCE
,並且-D
參數設定了相同的變數,則由於非FORCE
set(... CACHE ...)
呼叫的性質,-D
參數將優先,無論順序如何。
- -U <globbing_expr>¶
從 CMake
CACHE
中移除符合的條目。此選項可用於從
CMakeCache.txt
檔案中移除一個或多個變數,支援使用*
和?
的 globbing 表達式。可以重複此選項以指定任意多個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
變數以取得詳細資訊。
- --toolchain <path-to-file>¶
版本 3.21 新增。
指定交叉編譯工具鏈檔案,相當於設定
CMAKE_TOOLCHAIN_FILE
變數。相對路徑會被解釋為相對於建置目錄,如果找不到,則相對於原始碼目錄。
- --install-prefix <directory>¶
版本 3.21 新增。
指定安裝目錄,由
CMAKE_INSTALL_PREFIX
變數使用。必須是絕對路徑。
- --project-file <project-file-name>¶
版本 4.0 新增。
指定替代的專案檔案名稱。
這決定了 CMake 在組態專案時處理的頂層檔案,以及
add_subdirectory()
處理的檔案。預設情況下,這是
CMakeLists.txt
。如果設定為其他任何值,當在專案子目錄中找不到指定的檔案時,將使用CMakeLists.txt
作為後備方案。注意
此功能旨在供開發人員在增量轉換期間臨時使用,而不是用於發布最終產品。當專案檔案不是
CMakeLists.txt
時,CMake 始終會發出警告。
- -Wno-dev¶
抑制開發者警告。
抑制旨在給
CMakeLists.txt
檔案作者的警告。預設情況下,這也會關閉棄用警告。
- -Wdev¶
啟用開發者警告。
啟用旨在給
CMakeLists.txt
檔案作者的警告。預設情況下,這也會開啟棄用警告。
- -Wdeprecated¶
啟用棄用功能警告。
啟用針對已棄用功能使用的警告,這些警告旨在給
CMakeLists.txt
檔案的作者。
- -Wno-deprecated¶
抑制棄用功能警告。
抑制針對已棄用功能使用的警告,這些警告旨在給
CMakeLists.txt
檔案的作者。
- -Werror=<what>¶
將 CMake 警告視為錯誤。
<what>
必須是以下之一dev
將開發者警告設為錯誤。
將旨在給
CMakeLists.txt
檔案作者的警告設為錯誤。預設情況下,這也會將棄用警告也設為錯誤。deprecated
將棄用的巨集和函式警告設為錯誤。
將針對已棄用巨集和函式使用的警告(這些警告旨在給
CMakeLists.txt
檔案的作者)設為錯誤。
- -Wno-error=<what>¶
不要將 CMake 警告視為錯誤。
<what>
必須是以下之一dev
不要將旨在給
CMakeLists.txt
檔案作者的警告視為錯誤。預設情況下,這也會關閉將棄用警告視為錯誤。deprecated
不要將針對已棄用巨集和函式使用的警告(這些警告旨在給
CMakeLists.txt
檔案的作者)視為錯誤。
- -version [<file>], --version [<file>], /V [<file>]¶
顯示程式名稱/版本橫幅並結束。如果給定,輸出會列印到指定的
<file>
。
- -h, -H, --help, -help, -usage, /?¶
列印使用資訊並結束。
用法描述了基本命令列介面及其選項。
- --help <keyword> [<file>]¶
列印一個 CMake 關鍵字的說明。
<keyword>
可以是屬性、變數、命令、策略、產生器或模組。以人類可讀的文字格式列印
<keyword>
的相關手冊條目。如果給定,輸出會列印到指定的<file>
。在 3.28 版本變更: 在 CMake 3.28 之前,此選項僅支援命令名稱。
- --help-full [<file>]¶
列印所有說明手冊並結束。
所有手冊都以人類可讀的文字格式列印。如果給定,輸出會列印到指定的
<file>
。
- --help-manual <man> [<file>]¶
列印一個說明手冊並結束。
指定的手冊以人類可讀的文字格式列印。如果給定,輸出會列印到指定的
<file>
。
- --help-manual-list [<file>]¶
列出可用的說明手冊並結束。
該列表包含所有可以使用
--help-manual
選項後跟手冊名稱來取得說明的手冊。如果給定,輸出會列印到指定的<file>
。
- --help-command <cmd> [<file>]¶
列印一個命令的說明並結束。
以人類可讀的文字格式列印
cmake-commands(7)
手冊中關於<cmd>
的條目。如果給定,輸出會列印到指定的<file>
。
- --help-command-list [<file>]¶
列出可用的命令說明並結束。
該列表包含所有可以使用
--help-command
選項後跟命令名稱來取得說明的命令。如果給定,輸出會列印到指定的<file>
。
- --help-commands [<file>]¶
列印 cmake-commands 手冊並結束。
以人類可讀的文字格式列印
cmake-commands(7)
手冊。如果給定,輸出會列印到指定的<file>
。
- --help-module <mod> [<file>]¶
列印一個模組的說明並結束。
以人類可讀的文字格式列印
cmake-modules(7)
手冊中關於<mod>
的條目。如果給定,輸出會列印到指定的<file>
。
- --help-module-list [<file>]¶
列出可用的模組說明並結束。
該列表包含所有可以使用
--help-module
選項後跟模組名稱來取得說明的模組。如果給定,輸出會列印到指定的<file>
。
- --help-modules [<file>]¶
列印 cmake-modules 手冊並結束。
以人類可讀的文字格式列印
cmake-modules(7)
手冊。如果給定,輸出會列印到指定的<file>
。
- --help-policy <cmp> [<file>]¶
列印一個策略的說明並結束。
以人類可讀的文字格式列印
cmake-policies(7)
手冊中關於<cmp>
的條目。如果給定,輸出會列印到指定的<file>
。
- --help-policy-list [<file>]¶
列出可用的策略說明並結束。
該列表包含所有可以使用
--help-policy
選項後跟策略名稱來取得說明的策略。如果給定,輸出會列印到指定的<file>
。
- --help-policies [<file>]¶
列印 cmake-policies 手冊並結束。
以人類可讀的文字格式列印
cmake-policies(7)
手冊。如果給定,輸出會列印到指定的<file>
。
- --help-property <prop> [<file>]¶
列印一個屬性的說明並結束。
以人類可讀的文字格式列印
cmake-properties(7)
手冊中關於<prop>
的條目。如果給定,輸出會列印到指定的<file>
。
- --help-property-list [<file>]¶
列出可用的屬性說明並結束。
該列表包含所有可以使用
--help-property
選項後跟屬性名稱來取得說明的屬性。如果給定,輸出會列印到指定的<file>
。
- --help-properties [<file>]¶
列印 cmake-properties 手冊並結束。
以人類可讀的文字格式列印
cmake-properties(7)
手冊。如果給定,輸出會列印到指定的<file>
。
- --help-variable <var> [<file>]¶
列印一個變數的說明並結束。
以人類可讀的文字格式列印
cmake-variables(7)
手冊中關於<var>
的條目。如果給定,輸出會列印到指定的<file>
。
- --help-variable-list [<file>]¶
列出可用的變數說明並結束。
該列表包含所有可以使用
--help-variable
選項後跟變數名稱來取得說明的變數。如果給定,輸出會列印到指定的<file>
。
- --help-variables [<file>]¶
列印 cmake-variables 手冊並結束。
The
cmake-variables(7)
手冊以人類可讀的文字格式印出。如果給定,輸出會印到指定的<file>
。
參見¶
以下資源可用於取得 CMake 使用方面的協助
- 首頁
-
學習 CMake 的主要起點。
- 線上文件與社群資源
https://cmake.dev.org.tw/documentation
在這個網頁上可以找到可用文件和社群資源的連結。
- Discourse 論壇
-
Discourse 論壇託管關於 CMake 的討論和問題。