AUTOMOC_PATH_PREFIX

在 3.16 版本加入.

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

为了生成路径前缀,CMake 会测试由``moc`` 编译的标头是否在任何目标中 include 目录<target_include_directories>()。如果是这样,CMake 将相应地计算相对路径。如果标头不在 include directories 中,CMake 将忽略 -p 路径前缀选项。在这种情况下,moc 通常会生成相对包含路径。

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

有关在 Qt 中使用 CMake 的更多信息,请参阅 cmake-qt(7) 手册。

可重现的构建

对于可重现的构建,建议将 moc 的标头保留在目标之一中:command:include 目录 <target_include_directories> 并将 AUTOMOC_PATH_PREFIX 设置为 ON。这确保:

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

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