chromium原始碼下載並編譯
目前,chromium的原始碼已經全部遷移到了git管理,所以本文主要梳理一下下載chromium原始碼的過程。
一、概況
chromium現在分為四個大分支:
- canary:最前沿的版本,每天都發布,bug一堆,不適合新人
- dev:每兩個星期釋出,比較穩定,可以體驗新功能和新特性
- deta:每週小版本更新,六週大版本更新。比dev穩定,比同期dev版小1個版本號,基本上是stable的待發版本
- stable:比同期dev小2個版本號,兩到三週次版本更新一次,每六週主版本更新。這是正式的釋出版本,推薦用這個來學習,特別是新人
二、下載chromium原始碼
1.瀏覽器翻牆下載並設定depot_tools
chromium原始碼的構建工具集的管理是通過depot_tools來管理的,所以首先要下載一個depot_tools。這個工具是在chromium的官網上的,可能需要科學上網才能夠下載,具體的下載地址:depot_tools。直接下載對應的系統的版本,windows的直接下載一個壓縮包。
下載完成後,將depot_tools.zip解壓,把depot_tools目錄路徑新增到系統的PATH環境變數開始處;如PATH=c:\depot_tools;.......
要把depot_tools的目錄放大path的前面。如果加在path路徑後面,要確保你path內部沒有git,python等路徑
2.為dos的cmd.exe設定代理
depot_tools工具下載設定完成後,就可以利用depot_tools中的指令碼去下載一些必要的工具,比如git、svn、Python等工具,同時也會更新depot_tools中的資料。這些指令碼的執行都是在cmd中完成的,並需要連線網路來下載資料,這時就要為cmd設定網路代理。具體的方法如下所示:
首先必須找到一個可用的高速http/https/socks5的代理伺服器
為cmd設定http/https/socks5代理。開啟一個具有管理員許可權的cmd(非常重要),在其中輸入:
x:>netsh netsh>winhttp netsh winhttp> netsh winhttp> netsh winhttp>set
其中
http.proxy.com:12345
為你的代理的IP地址和埠號。
設定完成後,退出該cmd就可以了。該設定使固化在系統紅的,重新啟動之後,該設定依然有效。啟動一個新的cmd,執行命令
x:>gclient
,這時就能夠利用設定好的cmd代理下載git、svn、python等工具並更新depot_tools。等上面的步驟執行結束後,再次執行
x:>gclient
,一般這裡的執行結果會失敗。即使再次成功了,也沒有關係,繼續往下設定。之所以說這裡可能失敗,是因為第一次執行gclient只要是更新depot_tools、下載git等工具;第二次執行gclient就要通過git工具下載一些東西了,但是這時git並沒有設定代理。如果git下載不能翻牆,那麼就會報錯。
3.為git設定代理
在第二次執行gclient命令前,我們要為git設定好代理。git支援git、http/https、ssh等協議,在這裡我們只需要設定最簡單的http/https協議就行了。假設代理伺服器的地址為:http://http.proxy.com:12345,http://https.proxy.com:2345,scoks5://scoks.proxy.com:3456,設定方法如下:
先設定CMD環境變數,在CMD中輸入:
x:>set http_proxy=http://http.proxy.com:12345 x:>set https_proxy=http://https.proxy.com:23456 x:>set socks5_proxy=socks5://https.proxy.com:23456
為git設定代理
a)使用http/https代理伺服器x:>git config --global http.proxy %http_proxy% x:>git config --global https.proxy %https_proxy%
或者:b)使用socks5代理伺服器
x:>git config --global http.proxy %socks5_proxy% x:>git config --global https.proxy %socks5_proxy%
驗證git代理
設定完後,用下面命令看是否成功:x:>git config --get http.proxy x:>git config --get https.proxy
再次執行gclient命令
這時git的代理就設定好了,再次執行gclient
命令,就會利用git通過設定的代理下載一些資料。這樣gclient
命令就能夠正確的執行完畢。
成功後可以執行一次gclient –version看看版本號,並注意一下有沒有錯誤提示:x:>gclient --version
配置git的使用者名稱和郵箱
x:>git config --global user.name "yourname" #yourname改為你希望的使用者名稱 x:>git config --global user.email "[email protected]" #輸入你自己的郵箱 x:>git config --global core.autocrlf false x:>git config --global core.filemode false
4.開始同步chromium原始碼並編譯
環境設定完畢,下面就開始同步原始碼:
建立一個目錄用於下載chromium程式碼,比如D:\chromium,在此目錄中在建立一個目錄master;D:\chromium\master就是我們將要簽出程式碼的主目錄。
進入該目錄,通過下面的命令,產生.gclient檔案:
gclient config https://chromium.googlesource.com/chromium/src.git
設定環境變數
set GYP_MSVS_VERSION=2013 set GYP_GENERATORS=ninja set DEPOT_TOOLS_WIN_TOOLCHAIN=0 // 如果要編譯release版本則是 set GYP_DEFINES=branding=Chromium buildtype=Official //這裡使用的是windows kit 10,後面說為什麼。 set GYP_DEFINES=windows_sdk_path="C:\Program Files (x86)\Windows Kits\10" component=shared_library disable_nacl=1 enable_automation=0 enable_captive_portal_detection=0 enable_google_now=0 enable_hidpi=0 fastbuild=1 ffmpeg_branding=Chrome incremental_chrome_dll=0 proprietary_codecs=1 remoting=0
提示:環境變數set GYP_MSVS_VERSION原來是2015,但是用了一個月過期了,再次使用它編譯出現一些問題,所以還是用2013版本的。
在當前視窗執行,執行如下內容耐性等待,看網路條件2–40小時:
gclient sync --nohooks --with_branch_heads --with_tags --output-json="log.json"
如果發生錯誤,註釋掉depot_tools\python276_bin\Lib\mimetypes.py檔案的248–251行內容:
# try:
# ctype = ctype.encode(default_encoding) # omit in 3.x!
# except UnicodeEncodeError:
# pass
再次執行下面的命令:
gclient sync --nohooks --with_branch_heads --with_tags --output-json="log.json"
執行完成後進入src目錄,執行下面的命令:
cd src git fetch git pull
為了安全起見,再次執行下面的命令:
cd .. gclient sync --nohooks --with_branch_heads --with_tags --output-json="log.json" cd src git fetch git pull
生成工程檔案(最好做一個備份或者做個分支)
一定要注意,runhooks前要修改兩個檔案: src\build\common.gypi 在5488行(4610, # Object
can never be instantiated)左右,加入 4702, 4819, 4996,
src\build\some.gyp 的 #’../chrome/chrome.gyp:chrome’,前面的#取消,解除註釋這裡說一下新增這幾個數字的用途:
由於編譯chromium原始碼對warning要求很嚴格,一旦出現warning就會停止編譯。在common.gypi檔案中增加這些整數就是降低該warning的等級,或者說忽略該warning。gclient runhooks --force
編譯當前版本原始碼,在src目錄執行:
ninja -C out\Debug chrome # 生成x86 Debug版本 ninja -C out\Debug content # 生成content_shell版本 ninja -C out\Release chrome # 生成x86 Release版本 ninja -C out\Debug_X64 chrome # 生成x64 Debug版本 ninja -C out\Release_X64 chrome # 生成x64 Release版本
注意:這樣直接的編譯會產出好多的提示資訊,又由於windows的控制檯是不能翻頁的,所以最好把編譯的資訊重定向到一個檔案中。在每一個命令的後面加上
>>log.txt 2>&1
就可以了。
5.程式碼同步完成後,恢復系統的代理設定
恢復netsh winhttp設定為直連
開啟一個具有管理員許可權的CMD,輸入下面命令:x:>netsh netsh>winhttp netsh winhttp> netsh winhttp>reset proxy
輸入下面命令看清除是否成功,成功後顯示下面資訊:
netsh winhttp>show proxy Current WinHTTP proxy settings: Direct access (no proxy server).
清除git代理
開啟一個普通的CMD,輸入下面的命令:git config --global --unset http.proxy
三、編譯指定版本的chromium原始碼
首先切換至src目錄下,列出所有版本的標籤,下面的命令將標籤記錄到tags.txt文字中:
git tag >>tags.txt 2>&1
用sublime開啟tags.txt檔案後檢視版本號,這裡只擷取最新版本號。
大家可以切換到某個tag進行編譯,命令和切換到分支相同,使用如下命令:
git checkout -b chrome_43.0.2355.2_local_branch 43.0.2355.2
這句話的意思就是建立本地分支chrome_43.0.2355.2_local_branch並切換到遠端43.0.2355.2tag上。這裡可以通過git branch檢視當前的分支。
在某個特定的版本上建立完分支之後,再次同步程式碼:
gclient sync --nohooks --with_branch_heads --with_tags --output-json="log.json"–jobs 16
//使用--nohooks可以減少每次都檢查編譯環境等資訊。
這樣就能夠編譯當前版本的chromium原始碼了。
四、參考文件
相關推薦
chromium原始碼下載並編譯
目前,chromium的原始碼已經全部遷移到了git管理,所以本文主要梳理一下下載chromium原始碼的過程。 一、概況 chromium現在分為四個大分支: canary:最前沿的版本,每天都發布,bug一堆,不適合新人 dev:每兩個星期釋出,
chromium原始碼下載與編譯一
最近要做一個Android上的Hybrid專案,本來一直用WebKit,但是WebKit是在2012年移植到Android上的,已經不能支援最新的Web技術了,而且Android上的Chromium發展迅速,已經能夠滿足各種需求了。 實際上現在才開始跟進Chromium,已
Android O Chromium 原始碼下載與編譯
去年Android O 釋出之後,按照慣例,我需要做一些移植工作,把之前版本加的針對我們公司平臺的Pacth合過來,從Android M開始,Chromium source code就需要單獨下載和編譯,不再包含在Android source code裡面。一般下載完Andr
自動下載原始碼_並編譯_打包_部署_重啟服務的Shell指令碼
完整版見https://jadyer.github.io/2015/06/03/linux-shell-deploy/ #!/bin/sh APP_NAME=engine APP_WARS=JadyerEngine-web/target APP_PATH=/app/
Zlib 原始碼下載並在Windows+VS2013編譯
Zlib是大家在開發中經常使用到的一個庫,主要用來壓縮資料或者解壓資料,裡面有很多功能函式,可以加快快發進度。 如果你是從官網下載的話,下載完成後,解壓,需要使用CMake-GUI軟體和目錄下的
在Ubuntu16.04上下載並編譯Android原始碼
Android原始碼位於Google的Git程式碼庫中,由於Android原始碼工程過於複雜龐大,所以Google以Git為基礎用Python指令碼,寫了一個管理工具Repo。 1.安裝Repo 在安裝Repo之前,假定已經安裝好了git。 mkdir ~
下載並編譯Chrome瀏覽器For Android
最近因為公司專案,需要對Chrome的某一模組進行修改後,相容公司的Android裝置,現記錄下Chrome的原始碼下載過程,作為筆記。 1. 準備Ubuntu系統,最好是物理機上安裝,因為Chrome首次編譯耗時較長,對硬體要求較高。我使用的Ubuntu版本為14.04.1。 2. 下載C
Google Chromium 原始碼下載
Goolgle 於 2008.09.02 釋出了瀏覽器 Google Chrome。Google Chrome 使用的核心原始碼來自開源瀏覽器引擎 WebKit Open Source Project。Google Chrome 的原始碼,同樣亦是開源的。網站為http://chromium.org,我這邊試
Android 原始碼下載、編譯和刷機過程
編譯環境: Win10 + VMware + ubuntu16.04 手機: Nexus 5 系統: Android 6.0 原生態原始碼 參考網頁:點選開啟連結 解決的問題 當 fastboot -w flashall 命令一直出現Waiting for dev
SpringFramework3 原始碼下載和編譯教程
Spring已經將原始碼從svn遷移到了git。所以,首先需要安裝git環境。我使用的是Windows下的TortoiseGit,帶圖形介面,比較直觀。 下載後,進入下載到的資料夾,裡面有個README.md的說明檔案,如果E文可以,可以按
Hibernate4.0原始碼下載和編譯教程
廢話不多說,直接進入主題。首先是下載原始碼,跟spring一樣,hibernate也採用git管理。 git://github.com/hibernate/hibernate-orm.git 下載後,hiberante同樣也是採用了g
chromium的下載和編譯
一、Chromium下載 首先應該去chromium官網去看一看,地址如下,如果可以看的明白最好了。按照Google說的一步一步去做,基本問題不是太大,不過還是有許多坑需要這裡說明一下的。如果按照Google步驟來沒有問題,可以不用繼續往下看。 1. 在下載c
下載並編譯Android模擬器Linux核心goldfish教程
1. 下載goldfish原始碼 在Android原始碼根目錄下新建kernel資料夾: $ mkdir kernel $ cd kernel 下載原始碼: $ git clone http://android.googles
【Tomcat9原始碼分析】原始碼下載、編譯與除錯
一、環境 以下是我編譯Tomcat所採用的環境 OS X Yosemite Version 10.10.5 Intellij IDEA 2017.1 Java version 1.8.0_65 Apache Maven 3.3.9 Tomcat 9.0.0
Mac OS X 10.8.4下Android4.2.2原始碼下載與編譯
最近打算辭職了,離開一直在廈門實習的公司。本來這個月轉正,但我的內心告訴我,廈門太安逸了點。我必須去外面闖闖,還年輕啊,不想以後後悔。在這兩天不記得看到什麼東西需要Android原始碼。然後心血來潮打算編譯下Android原始碼,畢竟以前編譯失敗過,有點不服輸。下面記錄下這
Android系統原始碼下載與編譯、刷機--Nexus6實測
前言 此博文記錄一下Android從系統原始碼下載到刷機的全過程。 (https://source.android.com/source/build-numbers.html 頁面中列表資訊找到自己裝置對應的Android版本進行選擇,博文中選擇MOB301) 硬體:Goog
spark最新原始碼下載並匯入到開發環境下助推高質量程式碼(Scala IDEA for Eclipse和IntelliJ IDEA皆適用)(以spark2.2.0原始碼包為例)(圖文詳解)
不多說,直接上乾貨! 前言 其實啊,無論你是初學者還是具備了有一定spark程式設計經驗,都需要對spark原始碼足夠重視起來。 本人,肺腑之己見,想要成為大資料的大牛和頂尖專家,多結合原始碼和操練程式設計。 好一段時間之前,寫過這篇部落格
Chromium原始碼獲取與編譯--附加一個簡單例子的編譯
從工作到現在,一直弄介面相關的東西,弄了好多年,包括前公司也買了一套UI,但是用下來以後發現不是這個問題就是那個問題。現在新的公司還在用MFC。MFC其實沒什麼不好,就是不能改原始碼這點比較糾結。。(誰說不能改原始碼的,改完自己編譯就是了。。orz。。你倒是給我個工程檔案?
VLC for Android原始碼下載和編譯 (包含其他開源專案,很全面!!!!)
Project Hosting on 點選開啟連結 from:http://dingran.iteye.com/blog/1717711 1.vlc for android 已經發布了,開源的地址是: http://wiki.videolan.or
完整版linux下android原始碼下載、編譯、模擬器啟動執行
一、環境說明: 1、VMware版本:8.0.3 build-703057 2、liunx系統:Ubuntu10.10 3、jdk:sun-java6-jdk 二、Ubuntu 10.10更新源列表 由於Ubuntu 10.10版本的源已經過期了,所以,需要