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 行為是不遵循 BEFORE 關鍵字,當插入到 COMPILE_OPTIONS 屬性時。此政策的 NEW 行為是在所有情況下都遵循 BEFORE 關鍵字。

此政策在 CMake 版本 3.17 中引入。它可以使用 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 不會 警告,並使用 OLD 行為。

注意

政策的 OLD 行為依定義上已棄用,並可能在未來的 CMake 版本中移除。