mac上面进行chromium编译

英文版教程:
https://chromium.googlesource.com/chromium/src/+/master/docs/mac_build_instructions.md

系统要求

64位mac,系统版本10.11+

系统版本,屏幕左上角 苹果图标 -> 关于本机 -> 概览

Xcode 7.3+

在 App Store搜索下载

OSX 10.10 SDK

装完Xcode以后在终端输入下面的代码,如下图所示应该就可以了

 $ ls `xcode-select -p`/Platforms/MacOSX.platform/Developer/SDKs

安装depot_tools

用git复制 depot_tools 资源

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

把depot_tools加入路径,假设你放在/path/to/depot_tools路径下面,那么就在终端输入,不过这是临时的,

$ export PATH="$PATH:/path/to/depot_tools"

获取代码

创建一个新的chromium文件夹并进入文件夹,你可以叫它别的名字,可以放在任意的位置,但是要保证路径没有空格

$ mkdir chromium && cd chromium

使用fetch来检出代码和依赖(这个代码我现在下大概是7.2GB,如果不想要所有的历史记录可以加--no-history,下载会快一点)

带历史记录的源码

$ fetch chromium

不带历史记录的源码

$ fetch --no-history  chromium

会产生隐藏的.gclient的文件,如果下载失败,可以把这个文件删了重新执行

中间不会有任何的提示,请安静地等待~
这种应该是下载成功了吧


mac上面进行chromium编译_第1张图片

然后你就会发现目录下面有src文件夹,进入文件夹

$ cd src

这里有提示install API keys ,但是对大多数的开发者不是必选项,所以就先跳过。

开始编译

之前装了 depot_tools,那么就可以用下面的代码开新建一个build的目录文件夹,(my_build可以换名字,但是out文件夹是必需的)

gn gen out/my_build

更快地编译

官网给了三个配置可以加快build,分别是is_debug,is_component_build,symbol_level,配置方式如下(关于配置的说明)

  1. 输入下面的命令行会打开一个配置文件
gn args out/my_build
  1. 可以在文件里面输入配置,像下面展示的这样
is_component_build = true
is_debug = false
symbol_level = 0

其实他们应该保存在src/out/my_build/args.gn这边

  1. 输入下面的代码你能够查看所有可配置的参数以及他们的默认值
gn args --list out/my_build

同时也可以通过install ccache ,在再次compile的时候会更快,下面也略微讲了一下

build chromium

使用Ninja来build chromium,这个过程会比较耗时

$ ninja -C out/Default chrome

运行chromium

输入

$ out/Default/chrome

Debugging 调试

debug资料
这里的意思是用图形化的环境不用在xcode里面配置
Debugging in Xcode
前面按照教程取消了crash的记录

最后的配置是在生成的文件夹下面找到products.xcodeproj,然后双击就会用xcode打开,然后配置scheme,
第一次应该没有scheme配置,选择New Scheme,然后Info这边,Executable选择Chromium.app,‘


mac上面进行chromium编译_第2张图片

mac上面进行chromium编译_第3张图片

然后启动chromium , Debug -》Attach to Processes ->
选择Chomium程序
下面可以参考这个文章、
https://zhuanlan.zhihu.com/p/24911872

首先是第一个资料

推荐苹果开发者阅读的Mac OS X Debugging Magic Technote
重要提醒

  1. 在xcode里面,为了让断点生效,Debugging面板中取消Load Symbols Lazily
  2. GYP_DEFINES的fast_build如果是1的话,那么你想要的断点可能拿不到,如果你去掉它,要重新运行gyp_chromium以及rebuild
    禁用ReportCrash,在终端输入man ReportCrash,然后找到这一行
mac上面进行chromium编译_第4张图片
launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist

调试渲染进程

XCode本身不支持多于一个的进程,对子进程的支持也不友好,有两种方法应付。

(a)单进程运行chrome

(不被推荐)

CCache

据说是加速recompilation的,他通过存储原来的compilation,当compilations相同的时候,能够有一个显著的加速,特别是切换分支的时候。
首先用brew下载
在环境变量里面配置 ,下面是临时的

Export PATH=“$PATH:/usr/local/opt/ccache/libexec ccahe”

然后要让gn配置使用
配置环境变量

export CCACHE_CPP2=yes
export CCACHE_SLOPPINESS=time_macros
export PATH=`pwd`/third_party/llvm-build/Release+Asserts/bin:$PATH

运行 ninja

ninja -C out/Release chrome

你可能感兴趣的:(mac上面进行chromium编译)