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

如果找到了 <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:這個全域屬性可用於在 IDE (例如 MSVS) 中將 AUTOMOCAUTOUICAUTORCC 目標群組在一起。

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

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

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

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