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 中移除。