天天看點

chromium源碼的下載下傳和編譯三

chromium生成編譯工程檔案需要用到gn,但是gn又在chromium的依賴庫中需要gclient來下載下傳,這是需要翻牆的,于是在github上搜尋了一下gn,真的找到了一些源碼鏡像,但是發現其編譯過程還是需要gn,這變成了蛋雞問題了,于是在網上找了一個最新的gn可執行檔案,運作gn args out/debug,發現生成過程還是需要用gclient同步一些依賴庫,這又變成了蛋雞問題。

在看chromium/tools/gn目錄時發現了一個檔案,bootstrap.py看源碼是一個自動編譯檔案,同時在github上找到一個subgn的鏡像,看readme可以不用gn來編譯出gn:https://github.com/ndsol/subgn,簡單地兩步就能編譯出gn,然後把gn可執行檔案替換depot_tools中的gn腳本,那麼就能運作gn指令了:

  1. git clone https://github.com/ndsol/subgn
  2. cd tools/gn; ./bootstrap/bootstrap -s

但是在chromium目錄運作gn args out/debug,還是會遇到問題:

ERROR at //.gn:6:1: Unable to load "/home/armite/google/chromium/third_party/angle/dotfile_settings.gni".

這說明還需要同步angle這個依賴庫,于是在github上搜了一下angle,找到了google相關的鏡像:https://github.com/google/angle.git,下載下傳到third_party後,gn可以正常運作了。

但是在生成編譯檔案時,報錯了:

Generating files...

ERROR at //build_overrides/build.gni:5:1: Can't load input file.

import("//build/config/gclient_args.gni")

但是在config中沒有找到gclient_args.gni,這是做什麼用的呢?

繼續閱讀