WebRTC源碼環境搭建

獲取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機制,有兩個重要的優勢:

  1. 獲取代碼比git快
  2. 可以生成所有代碼的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機制,有兩個重要的優勢:

  1. 獲取代碼比git快
  2. 可以生成所有代碼的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)跨平臺訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章