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
项)的行为不受此策略影响。BEFORE
关键字在将项添加到 INTERFACE_COMPILE_OPTIONS
时始终被遵守。
此策略的 OLD
行为是在插入到 COMPILE_OPTIONS
属性时不遵守 BEFORE
关键字。此策略的 NEW
行为是在所有情况下都遵守 BEFORE
关键字。
此策略在 CMake 3.17 版本中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 不会警告,并使用 OLD
行为。
注意
策略的 OLD
行为是根据定义已弃用
,并可能在未来版本的 CMake 中删除。