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
行為是不遵循 BEFORE
關鍵字,當插入到 COMPILE_OPTIONS
屬性時。此政策的 NEW
行為是在所有情況下都遵循 BEFORE
關鍵字。
此政策在 CMake 版本 3.17 中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake 不會 警告,並使用 OLD
行為。
注意
政策的 OLD
行為依定義上已棄用
,並可能在未來的 CMake 版本中移除。