目標和動力
我們在 2020 年推出了新的建構範本,以便執行定義
套件、元件及測試新範本更能反映真實的
專案的架構目標和方向這些範本會取代
2016 年,主要為 package()
、test_package()
和 unittest_package()
。
新範本的優點包括:
- 避免重複,使用更簡潔的語法。來自遷移的經驗 遷移至新範本後,新定義涵蓋的比例減少了 30% 至 50% 即可
- 元件可以定義一次,然後用於多個套件中。適用對象 在實際工作環境的定義中,將相同的元件重複使用 必須包含產品定義的套件 包含元件和其他元件之間的整合測試
- 由於元件和套件可以分開定義,因此建構系統 哪些依附元件屬於哪個元件 為您執行更複雜的建構時間驗證,偵測錯誤 並提供更清楚的意見
- 原生支援更多用途,無需使用特殊語法。
舉例來說,包含驅動程式、其他資料檔案或
共用程式庫不需要特殊語法,只要在建構時加上
deps
指定元件使用的項目或套件 包含。 - 定義簡單 (不需手動編寫
元件資訊清單 (
.cml
檔案)。 - 已有更詳盡的說明文件,涵蓋更多語言和用途。
遷移至新範本可讓建構定義更清楚易讀,
更實用,有助於清除與 SRM 相關的基礎技術債
僅在舊版 package()
範本的服務中保留。請幫助我們
將舊範本的所有範本換成新範本,我們即可繼續進行。
技術背景
請參閱建構元件指南。
建議在處理BUILD.gn
檔案方面有一般經驗,但不建議這麼做
完全不需要。
請參閱 GN 參考指南。
如何提供協助
選取工作
我們建議你從
//build/BUILD.gn
敬上
隸屬於「"deprecated_package"
」群組。
找出您熟悉的目錄,或是隨機挑選一個。
在這個目錄的 BUILD.gn
檔案中,您可能會看到含有以下內容的建構目標:
或舊的範本等
package("foo") {
...
}
執行工作
在您選擇的目錄中,移除所有使用的 BUILD.gn
檔案
範本 package()
、test_package()
或 unittest_package()
。請注意,
檔案會使用其他範本來包裝這些範本。廠牌
請刪除以下項目中相關的行:
//build/BUILD.gn
敬上
並且看到您仍可產生建構作業 (執行 fx gen
並
說明 GN 是否成功產生 Ninja 檔案)。
完成工作
準備變更時,請務必將
//build/BUILD.gn
敬上
列出經過清理的目錄
將程式碼審查傳送給具有建構定義的目錄擁有者 或是向下方列出的自願者 遷移作業:
- shayba@google.com
- xbhatnag@google.com
您是新的志工嗎?請將自己加入名單!
範例
- 464409:[time] 將所有套件和測試遷移至新的建構規則
- 464407:[建構] 將 //src/sys/lib 中的測試遷移至新的建構規則
- 464410:[build] 將 //src/sys 中的套件遷移至新的建構規則
- 473597:[工作階段] 將所有套件和測試遷移至新的建構規則
贊助者
如有問題或想掌握最新狀態,請與我們聯絡: