CMP0163¶
新增於版本 3.30。
GENERATED
原始碼檔案屬性現在在所有目錄中都可見。
在 CMake 3.29 及更早版本中,GENERATED
原始碼檔案屬性,如同其他原始碼檔案屬性一樣,在每個目錄中都是獨立的作用域。雖然原則 CMP0118
允許在一個目錄中標記為 GENERATED
的原始碼在其他目錄中使用,而無需再次手動將它們標記為 GENERATED
,但 GENERATED
屬性對於 get_property()
和 get_source_file_property()
的呼叫仍然不可見。
一個原始碼檔案是否為產生的,是該原始碼的全局屬性,只有是或否兩種狀態。CMake 3.30 及以上版本傾向於將 GENERATED
原始碼檔案屬性視為全局作用域。一旦在一個目錄中設定,它會立即對其他目錄中的 get_property()
和 get_source_file_property()
的呼叫可見。此原則為尚未更新以適應此行為的專案提供相容性。
此原則的 OLD
行為是讓 GENERATED
原始碼檔案屬性僅在設定它的目錄中可見。此原則的 NEW
行為是允許 GENERATED
原始碼檔案屬性一旦在任何目錄中設定,在所有目錄中都可見。此外,此原則的 NEW
行為暗示原則 CMP0118
的 NEW
行為:GENERATED
屬性只能設定為布林值,且一旦開啟就不能關閉。
此原則在 CMake 版本 3.30 中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 將不警告,並使用 OLD
行為。
注意
原則的 OLD
行為是依定義已棄用
,並可能在未來版本的 CMake 中移除。