如何快速獲取Chromium源碼和編譯
最近準(zhǔn)備研究下Chromium源碼,但在獲取Chromium源碼以及編譯上浪費(fèi)了太長時(shí)間,搜索很多網(wǎng)友文章,總是無法滿足個(gè)人需求,所以寫下此篇博文,將自己的經(jīng)驗(yàn)心得
分享,希望那些和我有同樣困擾的朋友能有所獲。
注:
本文盡量圖文并茂,只想將自己已經(jīng)成功的操作原樣放出,但有些設(shè)置并未詳加解釋,大家可以參考Google Chromium官方說明參考。
1. 準(zhǔn)備
?? 1) ? 首先要做的是必須能訪問Google Chromium官方網(wǎng)站,建 議網(wǎng)上申請(qǐng)一個(gè)VPN賬號(hào),現(xiàn)在應(yīng)該都收費(fèi)了,不過一年300左右,可以承受。
?? 2)?? 最好的參考資料莫過于Google Chromium官方說明:http://dev.chromium.org/Home
????????? 比如本人想在windows下進(jìn)行閱讀調(diào)試,可以參考:http://dev.chromium.org/developers/how-tos/build-instructions-windows
????????? 根據(jù)以上鏈接,不難得出以下配置:
???????????Win7 x64?(最好系統(tǒng)語言選擇英文)
???????????VS2013 + Update 4
?? 3)?? 下載Google專用工具集depot_tools
?????????? 參考:http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html
????
?????????? 具體步驟:
?????????? a. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
?????? ? ??
?????????? b. 添加 安裝路徑到Path環(huán)境變量
????????????
?????????? c. 執(zhí)行g(shù)client,depot_tools 工具集會(huì)安裝chromium team定制的git和python
?????????????
2.? 下載
????? 參考:?http://dev.chromium.org/developers/how-tos/get-the-code
????? 首先決定下載那個(gè)版本,這里推薦官方最新的是stable版本 (https://omahaproxy.appspot.com/) ,
??????
????? 從鏈接中可以看出截至目前為止,最新的stable版本是42.0.2311.135,其實(shí)在筆者寫這篇博文之前,這個(gè) 版本一直是42.0.2311.90,所以我下面
????? 的 截圖是以我以前操作為例,大家莫要誤會(huì)。
????
????? 但是問題來了,最新的版本一般不是這個(gè)版本,如果你想找到你想要的版本,一般推薦的步驟如下:
????? >???fetch chromium
????? >???git?checkout?-b?42.0.2311.90_local????42.0.2311.90
????? >???gclient?sync--with_branch_heads?[--jobs?16]??? (注:[]表該命令行選項(xiàng)可選)
????
????? 本人現(xiàn)住居所10M帶寬,VPN使用美國線路 (延遲200ms),真正完全執(zhí)行完上面第一步(fetch chromium)需要長達(dá)一天之久,甚至更長(我沒有精確統(tǒng)計(jì)過,因?yàn)槲业?/p>
???? ?VPN不 穩(wěn)定,隔4小時(shí)左右就會(huì)自動(dòng)斷開,需要手動(dòng)執(zhí)行g(shù)client sync --force?以保證能跟上上次的操作 ,其實(shí)至今我都不敢確信是否此操作不會(huì)漏失文件)。這種等待實(shí)在
???? 讓人難以忍受。所以只得另尋他法。
? ? ? 第一種:
????? >? 直接打開鏈接?https://chromium.googlesource.com/chromium/src.git/,上面可以找到42.0.2311.90
???????????
????
????????? 但是下載完后,發(fā)現(xiàn)解壓就有問題。。。
????? 結(jié)果: 失敗
???
??????? 第二種:
???? >? git clone -b 42.0.2311.90 --depth 1 https://chromium.googlesource.com/chromium/src.git
???? >? gclient sync --force
???? >? gclient runhooks
??? 執(zhí)行第三步,報(bào)錯(cuò):
?? ImportError: No module named gyp
?? Error: Command E:opensourcedepot_toolspython276_binpython.exe src/build/land
????? 結(jié)果:失敗
????? 第三種:
???? >? gclient sync --nohooks --no-history? -r 7d100c0e9df1d093c61d7e2c16daf1327d7cc163
???? >? gclient runhooks
??? ?? 結(jié)果:失敗 原因同第二種
?????
最終終于找到了第4種,已有高手在github放了最新的stable版本,筆者極力推薦,
https://github.com/zcbenz/chromium-source-tarball/releases
本人具體操作如下:
????? >? 解壓至 E:chromium42.0.2311.90_tarsrc
? ????????
???? >? ? 放一份.gclient文件和src同級(jí)目錄,
??????????
內(nèi)容如下
[plain]?view plain?copysolutions?=?[????{??????"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. 大功告成. 所有過程所花時(shí)間不會(huì)超過1小時(shí)。
3? 編譯
這步如網(wǎng)上其他網(wǎng)友所說,非常簡單,確實(shí)如此。??
????? 具體操作如下:
????? >? 配置環(huán)境變量方便以后VS調(diào)試
?????????
???? >? 使用ninja編譯
????????
????
????? 最終在我的神舟小本上,執(zhí)行完畢,耗時(shí)3小時(shí)之久。
?? ? ? 但結(jié)果是值得的???
???????
??
??
總結(jié):
這次 自己下載并編譯成功Chromium,真是歷盡艱辛。其實(shí)我覺得若能耐心下來學(xué)習(xí)git和python腳本,然后看下Google depot_tools中的封裝的一些腳本,肯定可以得到
比我更好的方案。
再接再厲!