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 會在檔案附近以及

如果找到 <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_EXECUTABLEuic 執行檔將會自動偵測,但可以使用此目標屬性強制指定為特定的二進位檔。

AUTOUIC_OPTIONS:可以透過此目標屬性設定 uic 的其他命令列選項。對應的 AUTOUIC_OPTIONS 原始檔屬性可用於指定僅適用於特定 <base_name>.ui 檔案的選項。

SKIP_AUTOUIC:可以透過設定此原始檔屬性,將原始檔從 AUTOUIC 處理中排除。

SKIP_AUTOGEN:可以透過設定此原始檔屬性,將原始檔從 AUTOMOCAUTOUICAUTORCC 處理中排除。

AUTOGEN_TARGETS_FOLDER:此全域屬性可用於將 AUTOMOCAUTOUICAUTORCC 目標在 IDE 中分組,例如在 MSVS 中。

CMAKE_GLOBAL_AUTOGEN_TARGET:當此變數為 ON 時,將產生一個全域 autogen 目標,該目標依賴專案中所有 AUTOMOCAUTOUIC 產生的 <ORIGIN>_autogen 目標 目標。

AUTOGEN_PARALLEL:此目標屬性控制在建置期間並行啟動的 mocuic 程序數量。

AUTOGEN_COMMAND_LINE_LENGTH_MAX:此目標屬性控制何時在 Windows 上對 mocuic 程序使用回應檔案的限制。

請參閱 cmake-qt(7) 手冊,以取得有關將 CMake 與 Qt 搭配使用的更多資訊。