如何快速獲取Chromium原始碼和編譯
最近準備研究下Chromium原始碼,但在獲取Chromium原始碼以及編譯上浪費了太長時間,搜尋很多網友文章,總是無法滿足個人需求,所以寫下此篇博文,將自己的經驗心得
分享,希望那些和我有同樣困擾的朋友能有所獲。
注:
本文儘量圖文並茂,只想將自己已經成功的操作原樣放出,但有些設定並未詳加解釋,大家可以參考Google Chromium官方說明參考。
1. 準備
1) 首先要做的是必須能訪問Google Chromium官方網站,建 議網上申請一個VPN賬號,現在應該都收費了,不過一年300左右,可以承受。
根據以上鍊接,不難得出以下配置:
Win7 x64
VS2013 + Update 4
3) 下載Google專用工具集depot_tools
具體步驟:
a. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
b. 新增 安裝路徑到Path環境變數
c. 執行gclient,depot_tools 工具集會安裝chromium team定製的git和python
2. 下載
從連結中可以看出截至目前為止,最新的stable版本是42.0.2311.135,其實在筆者寫這篇博文之前,這個 版本一直是42.0.2311.90,所以我下面
的 截圖是以我以前操作為例,大家莫要誤會。
但是問題來了,最新的版本一般不是這個版本,如果你想找到你想要的版本,一般推薦的步驟如下:
> fetch chromium
> git checkout -b 42.0.2311.90_local 42.0.2311.90
> gclient sync--with_branch_heads [--jobs 16
本人現住居所10M頻寬,VPN使用美國線路 (延遲200ms),真正完全執行完上面第一步(fetch chromium)需要長達一天之久,甚至更長(我沒有精確統計過,因為我的
VPN不 穩定,隔4小時左右就會自動斷開,需要手動執行gclient sync --force 以保證能跟上上次的操作 ,其實至今我都不敢確信是否此操作不會漏失檔案)。這種等待實在
讓人難以忍受。所以只得另尋他法。
第一種:
但是下載完後,發現解壓就有問題。。。
結果: 失敗
第二種:
> git clone -b 42.0.2311.90 --depth 1 https://chromium.googlesource.com/chromium/src.git
> gclient sync --force
> gclient runhooks
執行第三步,報錯:
ImportError: No module named gyp
Error: Command E:\opensource\depot_tools\python276_bin\python.exe src/build/land
結果:失敗
第三種:
> gclient sync --nohooks --no-history -r 7d100c0e9df1d093c61d7e2c16daf1327d7cc163 > gclient runhooks結果:失敗 原因同第二種
最終終於找到了第4種,已有高手在github放了最新的stable版本,筆者極力推薦,
本人具體操作如下:
> 解壓至 E:\chromium\42.0.2311.90_tar\src
> 放一份.gclient檔案和src同級目錄,
內容如下
- solutions = [
- {
- "managed": False,
- "name": "src",
- "url": "https://chromium.googlesource.com/chromium/src.git",
- "custom_deps": {},
- "deps_file": ".DEPS.git",
- "safesync_url": "",
- },
- ]
> set DEPOT_TOOLS_WIN_TOOLCHAIN=0
> run 'gclient runhooks'
OK. 大功告成. 所有過程所花時間不會超過1小時。
3 編譯
這步如網上其他網友所說,非常簡單,確實如此。
具體操作如下:
> 配置環境變數方便以後VS除錯
> 使用ninja編譯
最終在我的神舟小本上,執行完畢,耗時3小時之久。
但結果是值得的
總結:
這次 自己下載並編譯成功Chromium,真是歷盡艱辛。其實我覺得若能耐心下來學習git和python指令碼,然後看下Google depot_tools中的封裝的一些指令碼,肯定可以得到
比我更好的方案。
再接再厲!