英文版教程:
https://chromium.googlesource.com/chromium/src/+/master/docs/mac_build_instructions.md
系統(tǒng)要求
64位mac,系統(tǒng)版本10.11+
系統(tǒng)版本,屏幕左上角 蘋果圖標 -> 關于本機 -> 概覽
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"
獲取代碼
創(chuàng)建一個新的chromium
文件夾并進入文件夾蛀醉,你可以叫它別的名字,可以放在任意的位置,但是要保證路徑?jīng)]有空格
$ mkdir chromium && cd chromium
使用fetch來檢出代碼和依賴(這個代碼我現(xiàn)在下大概是7.2GB愈捅,如果不想要所有的歷史記錄可以加--no-history,下載會快一點)
帶歷史記錄的源碼
$ fetch chromium
不帶歷史記錄的源碼
$ fetch --no-history chromium
會產(chǎn)生隱藏的.gclient的文件慈鸠,如果下載失敗蓝谨,可以把這個文件刪了重新執(zhí)行
中間不會有任何的提示,請安靜地等待~
這種應該是下載成功了吧
然后你就會發(fā)現(xiàn)目錄下面有src文件夾青团,進入文件夾
$ cd src
這里有提示install API keys 譬巫,但是對大多數(shù)的開發(fā)者不是必選項,所以就先跳過督笆。
開始編譯
之前裝了 depot_tools芦昔,那么就可以用下面的代碼開新建一個build的目錄文件夾,(my_build可以換名字娃肿,但是out文件夾是必需的)
gn gen out/my_build
更快地編譯
官網(wǎng)給了三個配置可以加快build咕缎,分別是is_debug,is_component_build咸作,symbol_level锨阿,配置方式如下(關于配置的說明)
- 輸入下面的命令行會打開一個配置文件
gn args out/my_build
- 可以在文件里面輸入配置,像下面展示的這樣
is_component_build = true
is_debug = false
symbol_level = 0
其實他們應該保存在src/out/my_build/args.gn這邊
- 輸入下面的代碼你能夠查看所有可配置的參數(shù)以及他們的默認值
gn args --list out/my_build
同時也可以通過install ccache 记罚,在再次compile的時候會更快墅诡,下面也略微講了一下
build chromium
使用Ninja來build chromium,這個過程會比較耗時
$ ninja -C out/Default chrome
運行chromium
輸入
$ out/Default/chrome
Debugging 調(diào)試
debug資料
這里的意思是用圖形化的環(huán)境不用在xcode里面配置
Debugging in Xcode
前面按照教程取消了crash的記錄
最后的配置是在生成的文件夾下面找到products.xcodeproj桐智,然后雙擊就會用xcode打開末早,然后配置scheme,
第一次應該沒有scheme配置,選擇New Scheme说庭,然后Info這邊然磷,Executable選擇Chromium.app,‘
然后啟動chromium , Debug -》Attach to Processes ->
選擇Chomium程序
下面可以參考這個文章姿搜、
https://zhuanlan.zhihu.com/p/24911872
首先是第一個資料
推薦蘋果開發(fā)者閱讀的Mac OS X Debugging Magic Technote
重要提醒:
- 在xcode里面寡润,為了讓斷點生效舅柜,Debugging面板中取消Load Symbols Lazily
- GYP_DEFINES的fast_build如果是1的話,那么你想要的斷點可能拿不到致份,如果你去掉它变抽,要重新運行gyp_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)試渲染進程
XCode本身不支持多于一個的進程滔蝉,對子進程的支持也不友好击儡,有兩種方法應付。
(a)單進程運行chrome
(不被推薦)
CCache
據(jù)說是加速recompilation的锰提,他通過存儲原來的compilation曙痘,當compilations相同的時候立肘,能夠有一個顯著的加速名扛,特別是切換分支的時候谅年。
首先用brew下載
在環(huán)境變量里面配置 肮韧,下面是臨時的
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
運行 ninja
ninja -C out/Release chrome