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 的未来版本中移除。