package() 遷移

目標和動力

我們在 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

您是新的志工嗎?請將自己加入名單!

範例

贊助者

如有問題或想掌握最新狀態,請與我們聯絡: