使用depot_tools下載chromium源碼

1、chrome源碼目錄結構

 Chrome source非常龐大,並且在其主目錄下還包含有工具和組件,任何一個工具和組件也附帶有其源代碼。

首先得熟悉這些源代碼的組織結構,在http://src.chromium.org/svn/中包含如下子目錄:

releases,曾經發布過的chrome源代碼的正式版本;

trunk,當前最新的源代碼。由於releases中的代碼比較舊,這裏就不做說明了,只說明trunk的結構。

在trunk下面有3個重要的目錄:

deps包含了chrome編譯和運行所需要的全部組件的代碼。

src裏面包含的則是chrome的主程序的代碼,

tools包含的是下載和配置編譯所需要的第三方工具的壓縮包和源代碼,其中就有svn和python這2個比較重要的工具。

2、下載工具

  有三種方式可以獲取chromium源碼:

1、從chrome官網上直接下載源代碼壓縮包

2、svn從http://src.chromium.org/svn/trunk/src這個地方heckout,這要求你先在本地建一個源代碼的主目錄。

3、使用depot_tools,也是本文采取的方式。google提供的一個部署工具depot_tools。雖然這三種辦法都可下載完整的源代碼,但目前的情況是:chrome基於Visual Stdio 2005 進行編譯,如果順利完成編譯工作,自然少不了sln文件,較早的源代碼中包含有現成的sln和vcproject文件,但後來做了修改,這些文件被拋棄掉,Google自己開發了一種腳本工具叫做GYP,這個工具採用python編寫,GYP採用了自定義的一套規則,用於生成各種工程文件。而關鍵的python則包含於depot_tools中,因此不論採用什麼方法下載的代碼,都得下載depot_tools這個工具,以獲得必須的工程文件。

確定使用第三種方法depot_tools下載源碼,首先我們要下載depot_tools: http://src.chromium.org/svn/trunk/tools ,包括一個目錄和一個zip格式的壓縮包。

(1)下載depot_tools到本地存儲,假設位於d:/depot_tools.

       (2)將d:/depot_tools添加到系統環境變量中。

       (3)創建一個源代碼根目錄,假設爲 d:/chrome,目錄不得包含空格。

       (4)在命令行下切換當前目錄到d:/chrome。

       (5)執行命令 gclient config http://src.chromium.org/svn/trunk/src ,該命令會首先下載svn和python分別到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。(也可以指定版本:gclient config http://src.chromium.org/svn/releases/36.0.1929.1,源碼版本查看地址:https://src.chromium.org/viewvc/chrome/releases/ )

第(5)步可能出現如下問題:

問題1:下載git失敗:Cannot make HTTP request(操作超時) 

解決辦法:1) 從https://commondatastorage.googleapis.com/chrome-infra/git-1.9.0.chromium.3_bin.zip直接下載git-1.9.0.chromium.3_bin.zip文件,然後 發佈到任意http server。 
    2) 打開depot_tools安裝目錄下bootstrap\win\win_tools.bat文件,找到set GIT_ZIP_URL=https://commondatastorage.googleapis.com/chrome-i nfra/%GIT_ZIP_FILE%修改爲1)中發佈的地址,例如http://localhost:7869/%GIT_ZIP_FILE% 
    3) 再次運行gclient,ok!

問題2:連接googlesource錯誤:Failed connect to chromium.googlesource.com:443

解決辦法:修改host,添加以下內容:74.125.31.82  www.googlesource.com
     74.125.31.82  android.googlesource.com
     203.208.46.172  cache.pack.google.com
     59.24.3.173  cache.pack.google.com

問題3:更新depot失敗:depot_tools update failed. Conflict in /opt/depot_tools
Cannot rebase: You have unstaged changes.
Please commit or stash them.

解決辦法:cd depot_tools/

git checkout *

(6)執行gclient sync --force,開始同步代碼,如果下載過程中出現問題,重新執行此命令

若在下載源碼過程中出現下載toolchain_win_x86.tar.bz2等文件失敗時,可以考慮如下做法:
  a) 用瀏覽器將這些文件下載到本地(可能url會被牆,需要結合goagent與chrome,具體配置goagent的方法見《Linux下配置Goagent》)
  b) 在本地搭建tomcat服務器,搭建一個可供本地連接並下載的web服務器。
  c) 分別爲每個文件配置目錄,最終url的形式如:http://127.0.0.1/x86_toolchain/r12034/toolchain_win_x86.tar.bz2
  d) 修改D:\chromium-src\src\native_client\build\toolchainbinaries.py文件:BASE_DOWNLOAD_URL = ('http://127.0.0.1:8080')
   然後重新執行gclient sync --force即可。

參考博客地址列表:http://blog.csdn.net/namelcx/article/details/5971159

http://blog.csdn.net/glunoy/article/details/23591047

http://blog.csdn.net/hezhipin610039/article/details/31372619

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章