AUTOUIC¶
是否應使用 auto-uic (針對 Qt 專案) 處理目標。
AUTOUIC
是一個布林值,指定 CMake 是否會自動處理 Qt 的 uic
程式碼產生器,也就是說,無需使用像 QT4_WRAP_UI()
、qt5_wrap_ui() 等命令。目前支援 Qt 版本 4 到 6。
如果目標在建立時設定了 CMAKE_AUTOUIC
變數,則會以該變數的值初始化此屬性。
當此屬性為 ON
時,CMake 會在建置時掃描標頭檔和原始碼檔案,並相應地呼叫 uic
。
標頭檔和原始碼檔案處理¶
在建置時,CMake 會掃描目標來源中的每個標頭檔和原始碼檔案,尋找以下形式的 include 語句:
#include "ui_<ui_base>.h"
一旦在檔案中找到這樣的 include 語句,CMake 會在檔案附近搜尋 uic
輸入檔案 <ui_base>.ui
,以及
在目標的
AUTOUIC_SEARCH_PATHS
中。
如果找到了 <ui_base>.ui
檔案,則會對其呼叫 uic
,以在目錄中產生 ui_<ui_base>.h
<AUTOGEN_BUILD_DIR>/include
(針對單一組態產生器) 或在<AUTOGEN_BUILD_DIR>/include_<CONFIG>
(針對多組態
產生器)。
其中 <AUTOGEN_BUILD_DIR>
是目標屬性 AUTOGEN_BUILD_DIR
的值。
include 目錄會自動加入到目標的 INCLUDE_DIRECTORIES
中。
修飾詞¶
AUTOUIC_EXECUTABLE
:uic
可執行檔將會自動偵測,但可以使用此目標屬性強制指定為特定二進位檔。
AUTOUIC_OPTIONS
:可以透過此目標屬性設定 uic
的其他命令列選項。對應的 AUTOUIC_OPTIONS
原始碼檔案屬性可用於指定僅適用於特定 <base_name>.ui
檔案的選項。
SKIP_AUTOUIC
:可以透過設定此原始碼檔案屬性,將原始碼檔案排除在 AUTOUIC
處理之外。
SKIP_AUTOGEN
:可以透過設定此原始碼檔案屬性,將原始碼檔案排除在 AUTOMOC
、AUTOUIC
和 AUTORCC
處理之外。
AUTOGEN_TARGETS_FOLDER
:這個全域屬性可用於在 IDE (例如 MSVS) 中將 AUTOMOC
、AUTOUIC
和 AUTORCC
目標群組在一起。
CMAKE_GLOBAL_AUTOGEN_TARGET
:當此變數為 ON
時,將會產生一個全域 autogen
目標,該目標取決於專案中所有 AUTOMOC
或 AUTOUIC
產生的 The <ORIGIN>_autogen target 目標。
AUTOGEN_PARALLEL
:此目標屬性控制在建置期間平行啟動的 moc
或 uic
程序數量。
AUTOGEN_COMMAND_LINE_LENGTH_MAX
:此目標屬性控制在 Windows 上對 moc
或 uic
程序使用回應檔的限制。
請參閱 cmake-qt(7)
手冊,以取得關於搭配 Qt 使用 CMake 的更多資訊。