CMP0138

在 3.24 版本加入.

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

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

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

此策略是在 CMake 版本 3.24 中引入的。使用 cmake_policy() 命令将其显式设置为 OLDNEW。与许多政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时*不*发出警告。

备注

策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。