2014年9月7日 星期日

WebRTC -- 在 Mac OS 編譯並執行 WebRTC

以下將編譯WebRTC的過程作一記錄


1.  下載 Chromium depot tools
$ svn co  http://src.chromium.org/svn/trunk/tools/depot_tools

2.  設定環境變數
$ vi . profile
   加入 "PATH=$PATH:/Users/mac/depot_tools"
$ source .profile

3.  設定下載的程式為 webrtc
$ cd User/username/depot_tools
$ gclient config http://webrtc.googlecode.com/svn/trunk    

4. 下載 webrtc
$ gclient sync --force
(此步驟需要很久的下載時間,建議是睡覺前放著下載,睡醒了差不多就成功了) 
$ gclient runhooks --force
 
5. 編譯程式(預設使用 ninja 編譯)
$ cd trunk 
Debug:
$ ninja -C out/Debug 
Release:
$ ninja -C out/Release

6. 改成使用 xcode  編譯程式
a. 設定環境變數
$ export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1"
$ export GYP_GENERATORS="xcode"
b. 產生 xcode project file (all.xcodeproj)
$ gclient runhooks --force 
c. 使用 xcode 打開 trunk/all.xcodepro。 
d. 以執行 p2p unittest 為例子,其 Project and Target 選擇方式如下: 
select project "libjingle_test"
select target  "libjingle_p2p_unittest"
press ctrl+F5 to run
7. 如果要單獨執行某個 unittest, 作法如下,(以 pseudotcp_unittest.cc 為例)
select TARGETS "libjingle_p2p_unittest"
select "Build" -> "libjingle_test.gyp"
search "libjingle_p2p_unittest"
modify "sources", remove all file expect pseudotcp_unittest.cc

參考資料: