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-policies(7)
定義已棄用
,並可能在未來版本的 CMake 中移除。