CMP0101

在 3.17 版本中添加。

target_compile_options() 现在始终支持 BEFORE 关键词。

在 CMake 3.16 及更低版本中,target_compile_options() 命令在将项插入 COMPILE_OPTIONS 目标属性(PRIVATEPUBLIC 项)时忽略 BEFORE 关键词。CMake 3.17 及更高版本在所有情况下都支持 BEFORE 关键词。此策略为尚未升级以满足新行为预期的项目提供兼容性。

将项插入 INTERFACE_COMPILE_OPTIONS 目标属性(PUBLICINTERFACE 项)时的行为不受此策略影响。添加项到 INTERFACE_COMPILE_OPTIONS 时始终会支持 BEFORE 关键词。

此策略的 OLD 行为是在插入到 COMPILE_OPTIONS 属性时不支持 BEFORE 关键词。此策略的 NEW 行为是在所有情况下都支持 BEFORE 关键词。

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

注意

此策略的 OLD 行为 已定义 弃用,并在 CMake 的未来版本中删除。