4.8 KiB
libwebrtc

CMake script for retrieving, building and linking Google's WebRTC into a single static library.
Status
The following table displays the current state of this project, including supported platforms and architectures.
| Linux | macOS | Windows | iOS | Android | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| x86 | x64 | arm | x86 | x64 | x86 | x64 | arm | arm | arm64 | x86 | x64 |
| ✔ | ✔ | ✔ | |||||||||
Prerequisites
- CMake 3.5 or later,
- Python 2.7 (optional for Windows)
Debian & Ubuntu
Install the required development packages
# apt-get install build-essential libglib2.0-dev libgtk2.0-dev libxtst-dev \
libxss-dev libpci-dev libdbus-1-dev libgconf2-dev \
libgnome-keyring-dev libnss3-dev libasound2-dev libpulse-dev \
libudev-dev
Windows
-
Windows 7 x64 or later, x86 operating systems are unsupported.
-
Visual Studio 2015 with updates - Download the Installer
Make sure that you install the following components:
- Visual C++, which will select three sub-categories including MFC
- Universal Windows Apps Development Tools > Tools
- Universal Windows Apps Development Tools > Windows 10 SDK (10.0.10586)
Getting Started
Clone the repository, initialize the submodules if depot_tools is not
installed on your system or not defined inside your PATH environment variable.
Create an output directory and browse inside it.
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ git submodule init
$ git submodule update
$ mkdir out
$ cd out
Windows users must append Win64 if they are using a Visual Studio
generator. The libwebrtc.sln project solution will be located inside the
current directory output directory.
> cmake -G "Visual Studio 14 2015 Win64" ..
Unix users will just have to run $ cmake .. to generate the Makefiles, then
run the following commands.
$ make
$ make package
# make install
The library will be located inside the lib folder of the current output
directory. The include folder will contain the header files.
Advanced Usage
The library will be compiled and usable on the same host's platform and architecture. Here are some CMake flags which could be useful if you need to perform cross-compiling.
-
BUILD_SAMPLES
Build
PeerConnectionsample, source code located inside the Samples/PeerConnection directory. -
BUILD_TESTS
Build WebRTC tests. (not supported yet)
-
NINJA_ARGS
Arguments to pass while executing the
ninjacommand. For instance, you can define the number of cores you would like to use, in order to speed-up the build process:cmake -DNINJA_ARGS="-j 4" .. -
TARGET_OS
Target operating system, the value will be used inside the
--target_osargument of thegn gencommand. The value must be one of the following:androidchromeosioslinuxmacnaclwin
-
TARGET_CPU
Target architecture, the value will be used inside the
--target_cpuargument of thegn gencommand. The value must be one of the following:x86x64armarm64mipsel
Contributing
Feel free to open an issue if you wish a bug to be fixed, to discuss a new feature or to ask a question. I'm open to pull requests, as long as your modifications are working on the three major OS (Windows, macOS and Linux).
Don't forget to put your name and e-mail address inside the AUTHORS file!
You can also reach me on Twitter for further discussion.
License
MIT ©