2021 年 Bazel 設定 藍圖

回報問題 查看原始碼

上次驗證時間:2021 年 1 月 25 日 (更新記錄)

聯絡窗口:gregestren

討論:可配置藍圖:討論

先前的藍圖

目標

$ bazel build //:all 適用於任何專案和任何平台

  • 版本不需要指令列旗標。
  • 每個目標都會自動使用正確的設定 (例如 android_binary 使用正確的 NDK)。
  • 可為多個平台輕鬆建立。
  • 建構比例良好,特別是 w.r.t 圖形大小與動作快取。

系統還支援 cqueryStarlark configurationselect()

發展藍圖

我們根據我們對問題複雜程度和開發人員可用性的最瞭解程度,提供約略日期。在 2021 年,我們的目標是一次減少完成的專案數量。我們只能為主動優先處理的工作設定延展型文字廣告,以達到準確的期望。

平台

2021 年第 3 季Android 規則使用新的平台 API 進行中 (#11749)

  • 這是 2021 年初的第一要務。

2021 年第 3 季建構支援多個執行平台 進行中 (#11748)

pausedC++ 規則使用新的 platformsfall API(處理中) (#6516)

  • 這項封鎖要求已在 Android 平台上遭到封鎖。可以使用簡易的標記切換來開啟這項功能。

pause多平台目標 未開始

  • 讓目標宣告應針對多個平台進行建構
  • 因使用者要求而在這裡列出

paused淘汰並移除 --cpu 和相關標記未開始

  • 這是一個目標,遠大的目標,即將所有規則遷移至平台。

效益

2021實驗性 Bazel 模式可快取跨平台 Java 編譯進行 (#6526)

  • 改善多平台建構速度
  • 分配不足,進度緩慢