CMP0112

3.19 版本新增。

目标文件组件生成器表达式不添加目标依赖。

以下查询目录或文件名称组件的基于目标的生成器表达式不再添加对已评估目标的依赖。

  • TARGET_FILE_NAME

  • TARGET_FILE_DIR

  • TARGET_LINKER_FILE_BASE_NAME

  • TARGET_LINKER_FILE_NAME

  • TARGET_LINKER_FILE_DIR

  • TARGET_SONAME_FILE_NAME

  • TARGET_SONAME_FILE_DIR

  • TARGET_PDB_FILE_NAME

  • TARGET_PDB_FILE_DIR

  • TARGET_BUNDLE_DIR

  • TARGET_BUNDLE_DIR_NAME

  • TARGET_BUNDLE_CONTENT_DIR

在 CMake 3.18 及更低版本中,上述生成器表达式的已评估目标始终会添加依赖。CMake 3.19 及更高版本倾向于不添加此依赖。此策略为尚未更新以适应新行为的项目提供兼容性。策略设置在每个目标创建时记录,并决定引用该目标的生成器表达式是否隐含对它的依赖。

此策略的 OLD 行为是为上述生成器表达式添加对已评估目标的依赖。此策略的 NEW 行为是不为上述生成器表达式添加对已评估目标的依赖。

此策略是在 CMake 版本 3.19 中引入的。它可以由 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 默认发出警告,并使用 OLD 行为。

有关控制警告的信息,请参阅 CMAKE_POLICY_WARNING_CMP0112 变量的文档。

注意

策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。