AUTOUIC¶
目标是否应使用 auto-uic (用于 Qt 项目) 进行处理。
AUTOUIC
是一个布尔值,用于指定 CMake 是否将自动处理 Qt uic
代码生成器,即无需使用诸如 QT4_WRAP_UI()
、qt5_wrap_ui() 等命令。目前,支持 Qt 版本 4 到 6。
此属性由 CMAKE_AUTOUIC
变量的值初始化,如果该变量在创建目标时已设置。
当此属性为 ON
时,CMake 将在构建时扫描头文件和源文件,并相应地调用 uic
。
头文件和源文件处理¶
在构建时,CMake 扫描目标源中的每个头文件和源文件,以查找以下形式的包含语句
#include "ui_<ui_base>.h"
一旦在文件中找到这样的包含语句,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>
用于多配置
生成器。
其中 <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
:此全局属性可用于在 IDE 中将 AUTOMOC
、AUTOUIC
和 AUTORCC
目标组合在一起,例如在 MSVS 中。
CMAKE_GLOBAL_AUTOGEN_TARGET
:当此变量为 ON
时,将生成一个全局 autogen
目标,该目标依赖于项目中所有 AUTOMOC
或 AUTOUIC
生成的 <ORIGIN>_autogen 目标 目标。
AUTOGEN_PARALLEL
:此目标属性控制在构建期间并行启动的 moc
或 uic
进程的数量。
AUTOGEN_COMMAND_LINE_LENGTH_MAX
:此目标属性控制在 Windows 上对 moc
或 uic
进程使用响应文件时的限制。
请参阅 cmake-qt(7)
手册,以获取有关将 CMake 与 Qt 结合使用的更多信息。