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
在文件的附近和
在
AUTOUIC_SEARCH_PATHS
目标中。
如果找到 <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_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
:全局autogen
目标,取决于所有AUTOMOC
或AUTOUIC
生成的<ORIGIN>_autogen 目标,当此变量为ON
时,将生成该目标。
AUTOGEN_PARALLEL
:此目标属性控制构建过程中并行启动的 moc
或 uic
进程数量。
AUTOGEN_COMMAND_LINE_LENGTH_MAX
:此目标属性控制在 Windows 上向 moc
或 uic
进程使用响应文件时的限制。
有关使用 CMake 与 Qt 的更多信息,请参阅 cmake-qt(7)
手册。