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
:此全域屬性可用於將 AUTOMOC
、AUTOUIC
和 AUTORCC
目標在 IDE 中分組,例如在 MSVS 中。
CMAKE_GLOBAL_AUTOGEN_TARGET
:當此變數為 ON
時,將產生一個全域 autogen
目標,該目標依賴專案中所有 AUTOMOC
或 AUTOUIC
產生的 <ORIGIN>_autogen 目標 目標。
AUTOGEN_PARALLEL
:此目標屬性控制在建置期間並行啟動的 moc
或 uic
程序數量。
AUTOGEN_COMMAND_LINE_LENGTH_MAX
:此目標屬性控制何時在 Windows 上對 moc
或 uic
程序使用回應檔案的限制。
請參閱 cmake-qt(7)
手冊,以取得有關將 CMake 與 Qt 搭配使用的更多資訊。