GENERATED¶
此來源檔案是否為建置或 CMake 過程的一部分所產生。
在 3.20 版的變更: 在一個目錄中開啟 GENERATED 來源檔案屬性允許關聯的來源檔案跨目錄使用,無需手動為其他目錄範圍設定該屬性。此外,它現在只能設定為布林值,且一旦開啟就不能關閉。請參閱政策 CMP0118。
在 3.30 版的變更: 來源檔案是否為產生的是一個全有全無的全域屬性。因此,GENERATED 來源檔案屬性現在在所有目錄中都可見。請參閱政策 CMP0163。
告訴內部 CMake 引擎,來源檔案是由外部過程(例如另一個建置步驟或 CMake 本身的執行)產生的。然後此資訊用於免除該檔案的任何存在性或有效性檢查。
任何符合以下條件的檔案
由在建置期間執行的命令(例如
add_custom_command())所建立被列為
add_custom_command()或add_custom_target()命令的BYPRODUCTS之一,或
都將被標記為 GENERATED 屬性。
當作為 add_custom_command() 命令的 OUTPUT 建立的產生檔案被明確列為相同目錄範圍(通常表示同一個 CMakeLists.txt 檔案)內任何目標的來源檔案時,CMake 會自動建立一個依賴關係,以確保在建置該目標之前產生該檔案。
Makefile 生成器 將在 make clean 期間移除 GENERATED 檔案。
產生的來源可能會在某些 IDE 工具中隱藏,而在其他 IDE 中則可能顯示。對於 CMake 的 AUTOMOC、AUTORCC 或 AUTOUIC 功能所產生的來源的特殊情況,AUTOGEN_SOURCE_GROUP、AUTOMOC_SOURCE_GROUP、AUTORCC_SOURCE_GROUP 和 AUTOUIC_SOURCE_GROUP 目標屬性可能會影響產生的來源在專案檔案清單中的分組位置。