CMP0118

在版本 3.20 中新增。

GENERATED 來源檔可以在不同目錄之間使用,無需手動標記。

在 CMake 3.19 及更低版本中,GENERATED 來源檔屬性,如同其他來源檔屬性一樣,在每個目錄中都是獨立作用域的。如果來源檔在一個目錄中生成,專案必須在另一個目錄中手動設定 GENERATED 屬性才能使用該檔案。

來源檔是否為生成的,是來源檔的一個全有或全無的全域屬性:來源檔要么是生成的,要么不是。CMake 3.20 及更高版本傾向於允許在一個目錄中生成的來源檔在其他目錄中使用,而無需手動將它們標記為 GENERATED。此外,GENERATED 屬性現在只能設定為布林值,並且一旦開啟就不能關閉。此策略為尚未針對此行為更新的專案提供相容性。

此策略的 OLD 行為是僅允許在已開啟其 GENERATED 屬性的目錄中使用生成的檔案。此策略的 NEW 行為是允許在其他目錄中使用生成的檔案,而無需為這些目錄顯式開啟 GENERATED 屬性。

在版本 3.30 中新增:策略 CMP0163 還使 GENERATED 來源檔屬性對於其他目錄中的 get_property()get_source_file_property() 呼叫可見。

此策略在 CMake 版本 3.20 中引入。它可以通過 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 會警告將 GENERATED 屬性設定為非布林值,並使用 OLD 行為。

注意

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