Chromium 编译问题

Chromium 编译问题

网络环境准备

  • 科学上网自备, 这里假定 proxy为 http://127.0.0.1:1087 。
  • 打开 ~/.bash_profile ,加入如下内容
function proxy_off(){
        unset http_proxy
        unset https_proxy
        unset ftp_proxy
        unset rsync_proxy
        echo -e "关闭代理"
}
 
function proxy_on() {
        export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
        export http_proxy="http://127.0.0.1:1087"  #注意,这里根据自己科学上网的具体情况修改
        export https_proxy=$http_proxy
        export ftp_proxy=$http_proxy
        export rsync_proxy=$http_proxy
        export HTTP_PROXY=$http_proxy
        export HTTPS_PROXY=$http_proxy
        export FTP_PROXY=$http_proxy
        export RSYNC_PROXY=$http_proxy
        echo -e "开启代理"
}
  • 打开一个终端 , 根据自己情况建立目录, /xxxx/xxxxx/browser

$ source ~/.bash_profile

之后可以根据需要运行proxy_on / proxy_off 打开和关闭科学上网的代理。

$ proxy_on

  • 在/xxxx/xxxxx/browser 下, 执行 git clone

配置depot_tools和ninja环境。

 $  export PATH=/xxxx/xxxxx/browser/depot_tools:$PATH
 $  cd ninja && ./configure.py --bootstrap && cd ..
 $  export PATH=/xxxx/xxxxx/browser/ninja:$PATH
  • 为了确保Unicode文件名不会被HFS损坏, git config 配置
  • git config --global http.postBuffer 524288000
  • git config --global core.precomposeUnicode true

自此,环境准备已完成。
分别进入Chromium编译和V8单独编译

Chromium编译 -- fetch 代码

$ mkdir chromium && cd chromium
$ fetch chromium
    • 需要注意的是,由于Chromium项目庞大而且历史悠久,直接使用$ fetch chromium 耗时漫长,初次使用可以通过 $ fetch --no-history chromium, 待到项目编译结束后根据需要,使用$ git fetch --unshallow 得到全部历史记录文件。
    • 由于网络中断等各种原因导致的fetch中断,可以用$ gclient sync --no-history 断点续传 直至结束。 这个过程根据网络状况 ,几小时到二十几小时不等。
    • python3的问题,fetch chromium --> gclient sync. --> gclient runhooks, 其中runhook调用了python3 所以刚安装的python3的需要应用程序中python3 里 install certficate 如图:
      python3

      ref https://groups.google.com/g/v8-dev/c/ZCH5jyVHAUA

Chromium编译Build

  • 进入Chromium下的 src目录
$ cd src
  • 在Chromium下建立安装目录
$ gn gen out/Default

这里的Default 可以自己命名。

  • Build命令
$ autoninja -C out/Default chrome

这个过程根据PC性能,用时几小时到十几小时不等.
另外新版的arm芯片Mac需要一些额外的步骤,可直接参考官网
完成后在 out/Default 目录下有各类Build好的文件 如图

Build结果

Chromium编译 -- Xcode 环境准备

  • 首先要明确的是Chromium对于Xcode这样的IDE支持并不好,不过仍然不妨碍使用Xcode作为一个IDE环境,至少可以用来读代码和编辑。 todo 不过编译和调试还是要使用后面所提示的办法。
gn gen out/gn --ide=xcode

然后生成了这个目录下的文件
xcode编译环境
$ open out/gn/all.xcodeproj

打开xcode后 面临漫长的indexing。

ccache

编译缓存问题的安装

  • brew install ccache

debug

ref: gdb lldb调试软件的使用 todo

Build V8

v8是独立于Chromium项目的javascript引擎项目

环境准备

proxy 代理设置, deptool ninja等环境设置参考前文。

拉取代码

mkdir jsEngine # 此处自定义
cd v8
fetch v8
cd v8

alias

alias gm=/xxxx/xxxxx/jsEngine/v8/tools/dev/gm.py

tools/dev/v8gen.py x64.debug
ninja -C out.gn/x64.debug

编译

然后如果只是想编译d8的话(这样更快),最后一个命令后面加个d8的参数ninja -C out.gn/x64.debug d8。

编译release版本的话,最后两行改成这个。

tools/dev/v8gen.py x64.release
ninja -C out.gn/x64.release

alias gm=tools/dev/gm.py
gm arm64.debug

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容