CMP0101¶
在 3.17 版本中添加。
target_compile_options() 命令现在始终遵循 BEFORE 关键字。
在 CMake 3.16 及更早版本中,target_compile_options() 命令在将条目插入 COMPILE_OPTIONS 目标属性(PRIVATE 和 PUBLIC 条目)时会忽略 BEFORE 关键字。CMake 3.17 及更高版本在所有情况下都遵循 BEFORE 关键字。此策略为未更新为期望新行为的项目提供兼容性。
将条目插入 INTERFACE_COMPILE_OPTIONS 目标属性(PUBLIC 和 INTERFACE 条目)的行为不受此策略的影响。在向 INTERFACE_COMPILE_OPTIONS 添加条目时,BEFORE 关键字始终被遵循。
此策略的 OLD 行为是在将条目插入 COMPILE_OPTIONS 属性时不遵循 BEFORE 关键字。此策略的 NEW 行为是在所有情况下都遵循 BEFORE 关键字。
此策略引入于 CMake 版本 3.17。它可以由 cmake_policy() 或 cmake_minimum_required() 设置。如果未设置,CMake不会发出警告,并使用 OLD 行为。
注意
策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。