使用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

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