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 关键字。

此策略的“旧”行为是在插入 COMPILE_OPTIONS 属性时不遵守“BEFORE”关键字。此策略的“新”行为是在所有情况下都遵循“BEFORE”关键字。

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

备注

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