rhubarb-lip-sync/rhubarb/lib/webrtc-8d2248ff/talk/app/webrtc/objc
Daniel Wolf e5c39efeeb Moved main executable into its own directory along with its build logic
This will make it easier to add other artifacts that require build steps.
2018-01-24 18:38:09 +01:00
..
public Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
.clang-format Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
OWNERS Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
README Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCAVFoundationVideoSource+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCAVFoundationVideoSource.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCAudioTrack+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCAudioTrack.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCDataChannel+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCDataChannel.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCEAGLVideoView.m Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCEnumConverter.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCEnumConverter.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCI420Frame+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCI420Frame.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCICECandidate+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCICECandidate.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCICEServer+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCICEServer.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCLogging.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaConstraints+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaConstraints.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaConstraintsNative.cc Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaConstraintsNative.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaSource+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaSource.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaStream+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaStream.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaStreamTrack+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCMediaStreamTrack.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCNSGLVideoView.m Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCOpenGLVideoRenderer.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPair.m Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnection+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnection.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnectionFactory+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnectionFactory.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnectionInterface+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnectionInterface.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnectionObserver.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCPeerConnectionObserver.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCSessionDescription+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCSessionDescription.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCStatsReport+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCStatsReport.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoCapturer+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoCapturer.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoRendererAdapter.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoRendererAdapter.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoSource+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoSource.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoTrack+Internal.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
RTCVideoTrack.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
avfoundationvideocapturer.h Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00
avfoundationvideocapturer.mm Moved main executable into its own directory along with its build logic 2018-01-24 18:38:09 +01:00

README

This directory contains the ObjectiveC implementation of the
webrtc::PeerConnection API.  This can be built for Mac or iOS.  This
file describes building the API, unit test, and AppRTCDemo sample app.

Prerequisites:
- Make sure gclient is checking out tools necessary to target iOS: your
  .gclient file should contain a line like:
  target_os = ['ios', 'mac']
  Make sure to re-run gclient sync after adding this to download the tools.

- Set up webrtc-related $GYP_DEFINES; example shell functions that set
  up for building for iOS-device, iOS-simulator, and Mac (resp) are:
function wrbase() {
  cd /path/to/webrtc/src
}

function wrios() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=ios"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios"
  export GYP_CROSSCOMPILE=1
}

function wrios32() {
  wrios
  export GYP_DEFINES="$GYP_DEFINES target_arch=arm"
}

function wrios64() {
  wrios
  export GYP_DEFINES="$GYP_DEFINES target_arch=arm64"
}

function wrsim() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=ios target_subarch=arm32 target_arch=ia32"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim"
  export GYP_CROSSCOMPILE=1
}

function wrmac() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=mac target_subarch=arm64 target_arch=x64"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac"
}

- Finally, run "webrtc/build/gyp_webrtc.py" to generate ninja files.

Example of building & using the unittest & app:

- To build & run the unittest (must target mac):
  wrmac && ./webrtc/build/gyp_webrtc.py && \
      ninja -C out_mac/Debug libjingle_peerconnection_objc_test && \
      ./out_mac/Debug/libjingle_peerconnection_objc_test.app/Contents/MacOS/libjingle_peerconnection_objc_test

- To build & launch the sample app on OSX:
  wrmac && ./webrtc/build/gyp_webrtc.py && ninja -C out_mac/Debug AppRTCDemo && \
      ./out_mac/Debug/AppRTCDemo.app/Contents/MacOS/AppRTCDemo

- To build & launch the sample app on the iOS simulator:
  wrsim && ./webrtc/build/gyp_webrtc.py && ninja -C out_sim/Debug iossim AppRTCDemo && \
      ./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app

- To build & sign the sample app for an iOS device (32 bit):
  wrios32 && ./webrtc/build/gyp_webrtc.py && ninja -C out_ios/Debug-iphoneos AppRTCDemo

- To build & sign the sample app for an iOS device (64 bit):
  wrios64 && ./webrtc/build/gyp_webrtc.py && ninja -C out_ios/Debug-iphoneos AppRTCDemo