獲取depot_tools
WebRTC代碼都是用depot_tools工具來管理,所以第一步就是要獲取這個工具。在/chromium目錄裏面運行:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
這樣depot_tools工具就下載到了/webrtc/depot_tools目錄裏面,然後把它加到環境變量中:
export PATH=$PATH:/webrtc/depot_tools
配置gclient
運行
gclient config https://webrtc.googlesource.com/src.git —cache-dir=mnt/mirror/webrtc
這會在當面目錄下面生成一個一下內容的.gclient文件:
solutions = [
{ "name" : "src",
"url" : "https://webrtc.googlesource.com/src.git",
"deps_file" : "DEPS",
"managed" : True,
"custom_deps" : {
},
"custom_vars": {},
},
]
cache_dir = "/mnt/mirror/webrtc"
這個cache_dir就會存放WebRTC以及它所有依賴所有第三方代碼的bare倉庫。
運用depot_tools的cache-dir機制,有兩個重要的優勢:
- 獲取代碼比git快
- 可以生成所有代碼的bare倉庫
um代碼鏡像
動機
做Chromium瀏覽器開發有件比較蛋疼的事情是獲取Chromium代碼。Chromium代碼倉庫一是比較大,依賴的東西很多,二是它的服務器都在國外,國內往往連不上。因此我想利用一臺能夠直接訪問chromium.googlesource.com的服務器做爲googlesource的鏡像,我直接通過鏡像來同步代碼。
配置鏡像服務器
https://chromium.googlesource.com/chromium/src.git是Chromium代碼的主倉庫,它依賴70多個第三方倉庫,最方便快捷的方式就是利用cache-dir機制來一次性獲取所有代碼倉庫。
獲取depot_tools
Chromium代碼都是用depot_tools工具來管理,所以第一步就是要獲取這個工具。在/chromium目錄裏面運行:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
這樣depot_tools工具就下載到了/chromium/depot_tools目錄裏面,然後把它加到環境變量中:export PATH=$PATH:/chromium/depot_tools
配置gclient
運行 gclient config https://chromium.googlesource.com/chromium/src.git —cache-dir=/chromium/cache。
這會在當面目錄下面生成一個一下內容的.gclient文件:
1 2 3 4 5 6 7 8 9 10 11 |
solutions = [ { "name" : "src", "url" : "https://chromium.googlesource.com/chromium/src.git", "deps_file" : "DEPS", "managed" : True, "custom_deps" : { }, "safesync_url": "", }, ] cache_dir = "/chromium/cache" |
這個cache_dir就會存放chromium以及它所有依賴所有第三方代碼的bare倉庫。
運用depot_tools的cache-dir機制,有兩個重要的優勢:
- 獲取代碼比git快
- 可以生成所有代碼的bare倉庫
獲取WebRTC代碼
運行gclient sync –nohook –with_tags –ignore_lock命令獲取WebRTC已經它依賴的第三方代碼。
- –nohook參數是獲取完代碼不運行hooks動作
- –with_tags參數是獲取所有tag
- –ignore_lock。防止/chromium/cache的lock文件導致獲取代碼失敗
其他問題
HTTP代理配置
Curl等的代理
export http_proxy=192.168.74.1:31210
export https_proxy=192.168.74.1:31210
Git的HTTP代理
git config --global http.proxy http://192.168.74.1:31210
git config --global https.proxy http://192.168.74.1:31210
Git配置保存在 ~/.gitconfig 中,可以隨時手動修改
[http]
proxy = http://192.168.74.1:31210
[https]
proxy = http://192.168.74.1:31210
多環境搭建
默認獲取的是當前環境(比如linux)的代碼和依賴的第三方庫。可以配置gclient同時獲取多環境的源碼和工具。
編輯.gclient 配置文件:
target_os = [
"linux",
"win",
"mac",
"ios",
"android"
]
這樣只要下載一份代碼就可以同時構建多平臺目標。當然需要通過文件共享(如samba)跨平臺訪問。