Code Monkey home page Code Monkey logo

webrtc-build-scripts's Introduction

##WebRTC Build Scripts A set of build scripts useful for building WebRTC libraries for Android and iOS.

Bugs: Please submit the revision number that you are using. There are frequent updates to this project so please watch the changelist for bug fixes.

###Android ARMv7,x86, x86_64 Builds -- Guide here ARM64 is available but doesn't build, yet

The following instructions are for building the native WebRTC libraries for Android.

Getting Started

On Linux

You should only need Ubuntu 12.04 on a 64 bit machine to get going.

This is only required once.

# Source all the routines
source android/build.sh

# Install any dependencies needed
install_dependencies

# Pull WebRTC
get_webrtc
On Mac or Windows

If you don't have a Ubuntu machine available, or you are too lazy to setup a virtual machine manually, you can build WebRTC for Android on your Mac or Windows PC through our Vagrant script.

First of all, you need to download and install Vagrant. After that, from the /android directory, you need to execute the following in you shell:

# If you need to use private SSH keys from your host computer 
# Execute this line of code to ensure your private key is added to your identity
ssh-add -L

# If there are no identities, add them by:
ssh-add ~/.ssh/id_rsa

# Boot up and provision the Vagrant box
vagrant up

# SSH into the Vagrant box
vagrant ssh

Building the libraries

Then you can build the Android example

# Build apprtc
build_apprtc

# Build in debug mode
export WEBRTC_DEBUG=true
build_apprtc

You can build for armv7, armv8, x86, x86_64 platform

export WEBRTC_ARCH=armv7 #or armv8, x86, or x86_64
prepare_gyp_defines &&
execute_build

You can build a particular revision

# Pull WebRTC
get_webrtc 6783

# Build apprtc
build_apprtc

When the scripts are done you can find the .jar and .so file in $WEBRTC_HOME under "libjingle_peerconnection_builds".

###iOS (armv7, arm64, i386) and Mac (X86_64) -- Guide here These steps must be run on Mac OSX

Source the ios build scripts or open the Xcode project

source ios/build.sh

Specify if you want to build for Debug/Profile/Release by setting either WEBRTC_DEBUG, WEBRTC_PROFILE, WEBRTC_RELEASE as an environment variable in your bash or xcode scheme run settings.

WEBRTC_DEBUG=true
WEBRTC_PROFILE=true 
#or
WEBRTC_RELEASE=true

Building the libraries

Then you can build the iOS example

# We use the term webrtc dance a lot to build 
dance

# Or in two steps
get_webrtc
# Make changes then build WebRTC
build_webrtc

Mac example

# Get WebRTC
get_webrtc
# Make changes then build WebRTC
build_webrtc_mac

Check which revision you are using at ./webrtc-build-scripts/ios/webrtc/libWebRTC-LATEST-Universal-Debug.a.version.txt

Open the xcode project, and execute the AppRTC Demo on any iOS 7 device or simulator

open ./webrtc-build-scripts/ios/WebRTC.xcodeproj

You can also build a particular revision

    #Pull WebRTC
    update2Revision 6783

Make changes then,

    #Build WebRTC
    build_webrtc

Make sure you label your new binaries that are generated in

./webrtc-build-scripts/ios/webrtc/libjingle_peerconnection_builds 
Cocoapods!!

Version License Platform

Usage

To run the example AppRTC Demo project, clone the repo, and run pod install from the Example directory first.

Requirements

A fast internet connection.... for your own sanity

Installation

libjingle_peerconnection starting from revision 6931 is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "libjingle_peerconnection"

iOS ARM64 builds are available as of 7810.0.0

mac x86_64 builds are available as of 7759.0.0

Versioning

The versioning can be explained as follows:

6931.2.0

6931 reflects the SVN revision from the WebRTC root Google Code Project

2 reflects a Release Build (0 for Debug, 1 for Profile)

Profile builds are not available for the mac platform

The minor 0 reflects any changes I might need to make to the sample xcode project itself to work (incremented normally)

webrtc-build-scripts's People

Contributors

thebehera avatar arikya avatar noiges avatar tamastimar avatar joseph-onsip avatar brianadams avatar louis49 avatar wancw avatar

Watchers

James Cloos avatar ed1son avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.