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,在目录
<AUTOGEN_BUILD_DIR>/include中为单配置生成器生成ui_<ui_base>.h,或者在多配置生成器中在<AUTOGEN_BUILD_DIR>/include_<CONFIG>中生成。
其中 <AUTOGEN_BUILD_DIR> 是目标属性 AUTOGEN_BUILD_DIR 的值。
该包含目录会自动添加到目标的 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(例如 MSVS)中将 AUTOMOC、AUTOUIC 和 AUTORCC 目标组合在一起。
CMAKE_GLOBAL_AUTOGEN_TARGET:当此变量为 ON 时,将生成一个全局 autogen 目标,该目标依赖于项目中所有 AUTOMOC 或 AUTOUIC 生成的 <ORIGIN>_autogen 目标。
AUTOGEN_PARALLEL:此目标属性控制在构建过程中并行启动 moc 或 uic 进程的数量。
AUTOGEN_COMMAND_LINE_LENGTH_MAX:此目标属性控制在 Windows 上对 moc 或 uic 进程何时使用响应文件的限制。
有关将 CMake 与 Qt 结合使用的更多信息,请参阅 cmake-qt(7) 手册。