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 版本中移除。