CMP0099

添加于 3.17 版本。

链接属性在静态库的私有依赖项上是可传递的。

在 CMake 3.16 及更低版本中,目标属性 INTERFACE_LINK_OPTIONSINTERFACE_LINK_DIRECTORIESINTERFACE_LINK_DEPENDS 在构建系统生成期间的评估不遵循静态库的私有依赖项,这些依赖项出现在它们的 INTERFACE_LINK_LIBRARIES 中,并由 LINK_ONLY 生成器表达式保护。只有库本身会被传播以链接依赖的二进制文件。

CMake 3.17 及更高版本倾向于传播所有接口链接属性。此策略为尚未更新以预期新行为的项目提供兼容性。

此策略的 OLD 行为是不传播接口链接属性。此策略的 NEW 行为是传播接口链接属性。

添加于 3.30 版本: 策略 CMP0166 使 TARGET_PROPERTY 对这三个可传递链接属性的评估也遵循静态库的私有依赖项。

此策略在 CMake 3.17 版本中引入。可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 不会发出警告,并使用 OLD 行为。

注意

策略的 OLD 行为按定义是 deprecated by definition,并且可能在未来的 CMake 版本中移除。