AUTOUIC

该目标应该用自动 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> 用于 multi configuration 生成器。

其中 <AUTOGEN_BUILD_DIR> 是目标属性 AUTOGEN_BUILD_DIR 的值。

自动将 include 目录添加到目标的 INCLUDE_DIRECTORIES

修饰符

AUTOUIC_EXECUTABLEuic 可执行文件将自动检测,但可以使用此目标来强制执行某些二进制文件。

AUTOUIC_OPTIONSuic 的附加命令行选项可以通过此目标属性设置。已编译源文件中可使用对应的 AUTOUIC_OPTIONS 属性来指定仅适用于特定<base_name>.ui 文件的选项。

SKIP_AUTOUIC:可以通过设置此源文件属性,将源文件排除在 AUTOUIC 处理之外。

SKIP_AUTOGEN:可以通过设置此源文件属性,将源文件排除在AUTOMOCAUTOUICAUTORCC处理之外。

AUTOGEN_TARGETS_FOLDER:此全局属性可用于将AUTOMOCAUTOUICAUTORCC一起放在 IDE 中,例如 MSVS。

CMAKE_GLOBAL_AUTOGEN_TARGET:全局autogen目标,取决于所有AUTOMOCAUTOUIC生成的<ORIGIN>_autogen 目标,当此变量为ON时,将生成该目标。

AUTOGEN_PARALLEL:此目标属性控制构建过程中并行启动的 mocuic 进程数量。

AUTOGEN_COMMAND_LINE_LENGTH_MAX:此目标属性控制在 Windows 上向 mocuic 进程使用响应文件时的限制。

有关使用 CMake 与 Qt 的更多信息,请参阅 cmake-qt(7) 手册。