英文版教程:
https://chromium.googlesource.com/chromium/src/+/master/docs/mac_build_instructions.md
系統(tǒng)要求
64位mac,系統(tǒng)版本10.11+
系統(tǒng)版本,屏幕左上角 蘋(píng)果圖標(biāo) -> 關(guān)于本機(jī) -> 概覽
Xcode 7.3+
在 App Store搜索下載
OSX 10.10 SDK
裝完Xcode以后在終端輸入下面的代碼,如下圖所示應(yīng)該就可以了
$ ls `xcode-select -p`/Platforms/MacOSX.platform/Developer/SDKs

安裝depot_tools
用git復(fù)制 depot_tools 資源
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
把depot_tools加入路徑,假設(shè)你放在/path/to/depot_tools路徑下面,那么就在終端輸入,不過(guò)這是臨時(shí)的,
$ export PATH="$PATH:/path/to/depot_tools"
獲取代碼
創(chuàng)建一個(gè)新的chromium文件夾并進(jìn)入文件夾,你可以叫它別的名字,可以放在任意的位置,但是要保證路徑?jīng)]有空格
$ mkdir chromium && cd chromium
使用fetch來(lái)檢出代碼和依賴(這個(gè)代碼我現(xiàn)在下大概是7.2GB,如果不想要所有的歷史記錄可以加--no-history,下載會(huì)快一點(diǎn))
帶歷史記錄的源碼
$ fetch chromium
不帶歷史記錄的源碼
$ fetch --no-history chromium
會(huì)產(chǎn)生隱藏的.gclient的文件,如果下載失敗,可以把這個(gè)文件刪了重新執(zhí)行
中間不會(huì)有任何的提示,請(qǐng)安靜地等待~
這種應(yīng)該是下載成功了吧

然后你就會(huì)發(fā)現(xiàn)目錄下面有src文件夾,進(jìn)入文件夾
$ cd src
這里有提示install API keys ,但是對(duì)大多數(shù)的開(kāi)發(fā)者不是必選項(xiàng),所以就先跳過(guò)。
開(kāi)始編譯
之前裝了 depot_tools,那么就可以用下面的代碼開(kāi)新建一個(gè)build的目錄文件夾,(my_build可以換名字,但是out文件夾是必需的)
gn gen out/my_build
更快地編譯
官網(wǎng)給了三個(gè)配置可以加快build,分別是is_debug,is_component_build,symbol_level,配置方式如下(關(guān)于配置的說(shuō)明)
- 輸入下面的命令行會(huì)打開(kāi)一個(gè)配置文件
gn args out/my_build
- 可以在文件里面輸入配置,像下面展示的這樣
is_component_build = true
is_debug = false
symbol_level = 0
其實(shí)他們應(yīng)該保存在src/out/my_build/args.gn這邊
- 輸入下面的代碼你能夠查看所有可配置的參數(shù)以及他們的默認(rèn)值
gn args --list out/my_build
同時(shí)也可以通過(guò)install ccache ,在再次compile的時(shí)候會(huì)更快,下面也略微講了一下
build chromium
使用Ninja來(lái)build chromium,這個(gè)過(guò)程會(huì)比較耗時(shí)
$ ninja -C out/Default chrome
運(yùn)行chromium
輸入
$ out/Default/chrome
Debugging 調(diào)試
debug資料
這里的意思是用圖形化的環(huán)境不用在xcode里面配置
Debugging in Xcode
前面按照教程取消了crash的記錄
最后的配置是在生成的文件夾下面找到products.xcodeproj,然后雙擊就會(huì)用xcode打開(kāi),然后配置scheme,
第一次應(yīng)該沒(méi)有scheme配置,選擇New Scheme,然后Info這邊,Executable選擇Chromium.app,‘


然后啟動(dòng)chromium , Debug -》Attach to Processes ->
選擇Chomium程序
下面可以參考這個(gè)文章、
https://zhuanlan.zhihu.com/p/24911872
首先是第一個(gè)資料
推薦蘋(píng)果開(kāi)發(fā)者閱讀的Mac OS X Debugging Magic Technote
重要提醒:
- 在xcode里面,為了讓斷點(diǎn)生效,Debugging面板中取消Load Symbols Lazily
- GYP_DEFINES的fast_build如果是1的話,那么你想要的斷點(diǎn)可能拿不到,如果你去掉它,要重新運(yùn)行g(shù)yp_chromium以及rebuild
禁用ReportCrash,在終端輸入man ReportCrash,然后找到這一行

launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist
調(diào)試渲染進(jìn)程
XCode本身不支持多于一個(gè)的進(jìn)程,對(duì)子進(jìn)程的支持也不友好,有兩種方法應(yīng)付。
(a)單進(jìn)程運(yùn)行chrome
(不被推薦)
CCache
據(jù)說(shuō)是加速recompilation的,他通過(guò)存儲(chǔ)原來(lái)的compilation,當(dāng)compilations相同的時(shí)候,能夠有一個(gè)顯著的加速,特別是切換分支的時(shí)候。
首先用brew下載
在環(huán)境變量里面配置 ,下面是臨時(shí)的
Export PATH=“$PATH:/usr/local/opt/ccache/libexec ccahe”
然后要讓gn配置使用
配置環(huán)境變量
export CCACHE_CPP2=yes
export CCACHE_SLOPPINESS=time_macros
export PATH=`pwd`/third_party/llvm-build/Release+Asserts/bin:$PATH
運(yùn)行 ninja
ninja -C out/Release chrome