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 行為暗示了策略 CMP0118NEW 行為:GENERATED 屬性可能僅設定為布林值,並且一旦開啟就無法關閉。

此策略在 CMake 版本 3.30 中引入。 它可能由 cmake_policy()cmake_minimum_required() 設定。 如果未設定,CMake *不* 會警告,並使用 OLD 行為。

注意

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