CMP0138

添加于版本 3.24。

CheckIPOSupported 使用来自调用项目的标志。

CheckIPOSupported 模块 check_ipo_supported() 命令编译一个测试项目,以确定工具链是否支持 INTERPROCEDURAL_OPTIMIZATION。 CMake 3.23 及更低版本使用 CMAKE_<LANG>_FLAGSCMAKE_<LANG>_FLAGS_<CONFIG> 变量的默认值,针对当前环境和工具链设置运行检查。 然而,某些项目可能会修改这些标志变量,以添加影响工具链 IPO 功能可用性的标志。 CMake 3.24 及更高版本倾向于尊重调用项目中这些变量的值。 此策略为尚未更新以期望此行为的项目提供兼容性。

此策略的 OLD 行为是忽略调用项目中 CMAKE_<LANG>_FLAGSCMAKE_<LANG>_FLAGS_<CONFIG> 的值。 此策略的 NEW 行为是在测试项目中使用这些变量的值作为编译器标志。

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

注意

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