自己動手編譯 Chromium

自己動手編譯 Chromium

這篇文章的環境是 Ubuntu 10.04 LTS 64 bit 版本(也就是我目前的桌面),在動手做之前請確定對 Linux 有基本的認識,因為在實作的過程中可能會發生某些突發狀況需要自己動手解決。

目前 Chromium 原始碼的來源有兩種,一種是下載官方包好的 Source Code Tarball ,解壓縮之後編譯,另一種是從 SVN 版本控制系統取出再編譯。我偏好後者,雖然第一次取出比較慢,但之後可以隨時維持更新。
 
要取出 Source Code 必須依靠 depot_tools ,可以從這邊下載 depot_tools.tar.gz,完成之後挑選一個目錄解壓縮,並且在 shell 宣告環境變數(例如加到你的 .profile 檔或是 .bashrc 檔,以下這個寫法是假定 depot_tools 解壓縮在自己的家目錄下。):

1# for google chrome
2export PATH=`pwd`/depot_tools:"$PATH"

另外要檢查一下是否有宣告 PKG_CONFIG_PATH ,如果沒有的話,找出 pkgconfig 的路徑,並且宣告。

1export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

這樣就可以執行 depot_tools 了,以上算是前置作業,接著是環境的檢查,看看有什麼沒裝的,都裝一下 (for Ubuntu)。

1sudo apt-get install bison fakeroot flex g++ g++-multilib gperf \
2  libapache2-mod-php5 libasound2-dev libbz2-dev libcairo2-dev \
3  libdbus-glib-1-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev \
4  libglib2.0-dev libgtk2.0-dev libjpeg62-dev libnspr4-dev libnss3-dev \
5  libpam0g-dev libsqlite3-dev libxslt1-dev libxss-dev \
6  mesa-common-dev msttcorefonts patch perl pkg-config python \
7  python2.5-dev rpm subversion libcupsys2-dev libgnome-keyring-dev

接下來建立一個目錄給 chromium ,例如: /home/roga/chromium 就是個不錯的選擇。以下用 $chromium 代表 chromium 所在的目錄,然後建立 config 檔案:

執行完畢之後,目錄下會產生一個 .gclient 檔,請編輯這個檔案,然後加上以下敘述,目的是讓取出的過程中忽略 test case (要不然會額外花費很多時間)。


solutions = [
{ "name" : "src",
"url" : "http://src.chromium.org/svn/trunk/src",
"custom_deps" : {
},
"safesync_url": "",
"custom_deps" : {
"src/third_party/WebKit/LayoutTests": None,
}
},
]

接著就可以開始取出原始碼了,這個步驟要花掉不少時間,可以先去喝個飲料散個步:

1cd $chromium
2gclient sync

如果跑到一半有任何錯誤的話,請執行剛剛抓下來的 $chromium/build/install-build-deps.sh 這隻程式,會幫你檢查系統套件的相依性,補足不夠的地方,接著重新執行 gclient sync 應該就會成功了。完成之後,在 $chromium 的目錄下應該開始編譯了。

1cd $CHROMIUM_ROOT/src
2make -j5 chrome

邊完之後,在 $CHROMIUM_ROOT/out 可以看到 binary 檔,直接執行即可。另外可以做一些設定,例如安裝 ccache 增加編譯速度等等,以及 BUILDTYPE (預設是 Debug, 如果改成 Release 則會 optimized 不過編譯時間會增加不少)..等等 ,留待下次討論。最後附上一個有用的連結,可以用 Eclipse 開發 Chromium:Using eclipse as an IDE for developing chromium.

原文地址:https://www.cnblogs.com/lexus/p/2338537.html