CMP0138¶
在 3.24 版本中添加。
CheckIPOSupported 使用调用项目的标志。
“CheckIPOSupported”模块的 check_ipo_supported() 命令会编译一个测试项目,以确定工具链是否支持 INTERPROCEDURAL_OPTIMIZATION。CMake 3.23 及更早版本使用当前环境和工具链设置下的 CMAKE_<LANG>_FLAGS 和 CMAKE_<LANG>_FLAGS_<CONFIG> 变量的默认值来运行检查。但是,有些项目可能会修改这些标志变量以添加影响工具链 IPO 功能可用性的标志。CMake 3.24 及更高版本倾向于遵守调用项目对这些变量的值。此策略为尚未更新以期望此行为的项目提供兼容性。
此策略的 OLD 行为是忽略调用项目对 CMAKE_<LANG>_FLAGS 和 CMAKE_<LANG>_FLAGS_<CONFIG> 变量的值。此策略的 NEW 行为是在测试项目中将这些变量的值用作编译器标志。
此策略已在 CMake 版本 3.24 中引入。它可以由 cmake_policy() 或 cmake_minimum_required() 设置。如果未设置,CMake **不会** 警告,并使用 OLD 行为。
注意
策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。