CMP0138

在 3.24 版本中添加。

CheckIPOSupported 使用调用项目的标志。

在 CMake 3.23 及更早版本中,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 中移除。