AUTOMOC_PATH_PREFIX

自 3.16 版本起增加。

当此属性为 ON 时,CMake 将为已启用 AUTOMOC 的 Qt 目标生成 -p 路径前缀选项。

要生成路径前缀,CMake 将测试由 moc 编译的头文件是否位于任何目标 include directories 中。如果位于其中,CMake 将据此计算相对路径。如果头文件不在 include directories 中,CMake 将忽略 -p 路径前缀选项。在这种情况下,moc 通常会生成一个相对包含路径。

AUTOMOC_PATH_PREFIX 从变量 CMAKE_AUTOMOC_PATH_PREFIX 初始化,其默认值为 OFF

请参阅 cmake-qt(7) 手册以了解有关将 CMake 与 Qt 配合使用的更多信息。

可重复构建

对于可重复构建,建议将使用 moc 编译的头文件保留在目标之一的 include directories 中,并将 AUTOMOC_PATH_PREFIX 设置为 ON。这将确保

  • moc 输出文件在不同的构建设置中相同,

  • 当源文件和/或构建目录是符号链接时,moc 输出文件将正确编译。