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

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

注意

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