mac上面進(jìn)行chromium編譯

英文版教程:
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ō)明)

  1. 輸入下面的命令行會(huì)打開(kāi)一個(gè)配置文件
gn args out/my_build
  1. 可以在文件里面輸入配置,像下面展示的這樣
is_component_build = true
is_debug = false
symbol_level = 0

其實(shí)他們應(yīng)該保存在src/out/my_build/args.gn這邊

  1. 輸入下面的代碼你能夠查看所有可配置的參數(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
重要提醒

  1. 在xcode里面,為了讓斷點(diǎn)生效,Debugging面板中取消Load Symbols Lazily
  2. 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容