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 配合使用的更多信息,请参阅 cmake-qt(7) 手册。