Dieses Repository enthält eine Sammlung von CMake -Skripten, mit denen Sie die native WebRTC -Implementierung von Google in Ihr Projekt so einfach einbetten können:
cmake_minimum_required ( VERSION 3.3)
project (sample)
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
set ( SOURCE_FILES main.cpp)
add_executable (sample ${SOURCE_FILES} )
target_link_libraries (sample ${LIBWEBRTC_LIBRARIES} ) Es erzeugt auch eine pkg-config wenn Sie den klassischen Weg bevorzugen:
$ g++ `pkg-config --cflags LibWebRTC` main.cpp -o main `pkg-config --libs LibWebRTC`
Die folgende Tabelle zeigt den aktuellen Stand dieses Projekts an, einschließlich unterstützter Plattformen und Architekturen.
| x86 | x64 | Arm | ARM64 | |
| Linux | ✔ | ✔ | ||
|---|---|---|---|---|
| macos | - - | ✔ | - - | - - |
| Fenster | ✔ | ✔ |
depot_tools verwendet wird) # 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 7 x64 oder später
Visual Studio 2015 mit Updates - Laden Sie den Installateur herunter
Stellen Sie sicher, dass Sie die folgenden Komponenten installieren:
Windows 10 SDK mit Debugging -Tools für Windows- oder Windows -Treiber -Kit 10 im selben Windows 10 SDK -Installationsverzeichnis installiert.
Klonen Sie das Repository, erstellen Sie ein Ausgabeverzeichnis, stöbern Sie darin und führen Sie dann CMake aus.
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ mkdir out
$ cd out
$ cmake ..
Windows-Benutzer müssen das Win64-Suffix zu ihrem Visual Studio-Generatornamen hinzufügen, wenn sie die Bibliothek für 64-Bit-Plattformen erstellen möchten. Sie werden sie für 32-Bit-Builds weglassen und die Variable TARGET_CPU entsprechend definieren.
> cmake -G "Visual Studio 14 2015" -DTARGET_CPU=x86
> cmake -G "Visual Studio 14 2015 Win64"
Dann müssen sie das libwebrtc.sln im aktuellen Ausgangsverzeichnis öffnen und das ALL_BUILD -Projekt erstellen.
UNIX -Benutzer müssen nur die folgenden make -Befehle ausführen.
$ make
# make install
Die Bibliothek befindet sich im lib -Ordner des aktuellen Ausgangsverzeichnisses. Der include Ordner enthält die Header -Dateien. CMAKE -Skripte werden im Verzeichnis lib/cmake/LibWebRTC platziert.
Wenn Sie Xcode oder Visual Studio verwenden, können Sie einfach zwischen der Debug- und Release -Konfiguration von Ihrer IDE wechseln. Die Debugging -Flags werden an die Parameter des Generators beigefügt.
Andernfalls müssen Sie die Variable CMAKE_BUILD_TYPE zum Debug definieren.
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
Zum Zeitpunkt des Schreibens dieser ReadMe -Datei gibt es keinen ordnungsgemäßen Weg, um eine Installation der WebRTC -Bibliotheks- und Header -Dateien zu erkennen. In der Zwischenzeit generiert und deklariert dieses CMake -Skript ein LibWebRTC -Paket, das für Ihre Projekte sehr einfach zu verwenden ist.
Alles, was Sie tun müssen, ist das Paket einzuschließen, dann die "Verwenden Sie Datei verwenden", die automatisch die erforderlichen Bibliotheken finden, die ordnungsgemäßen Kompilierflags definieren und Verzeichnisse einbeziehen.
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
target_link_libraries (my-app ${LIBWEBRTC_LIBRARIES} ) Eine PKG-Config-Datei wird ebenfalls bereitgestellt. Sie können die erforderlichen Compiler- und Linker-Flags erhalten, indem Sie LibWebRTC als Paketnamen angeben.
$ pkg-config --cflags --libs LibWebRTC
Die neueste Funktionsveröffentlichung wird standardmäßig abgerufen, es sei denn, Sie beschließen, ein bestimmtes Commit abzurufen, indem Sie ihn in die CMake -Variable webrtc_revision oder einen anderen Branch Head Ref in die Variable webrtc_branch_heads einstellen.
$ cmake -DWEBRTC_REVISION=be22d51 ..
$ cmake -DWEBRTC_BRANCH_HEAD=refs/branch-heads/57 ..
Wenn beide Variablen festgelegt sind, wird sich darauf konzentrieren, das in webrtc_revision definierte Commit abzurufen.
CMake wird die neueste Überarbeitung des depot_tools -Repositorys abrufen. Es wird das Commit-Datum des WEBRTC-Repositorys erhalten und dann depot_tools zum Ausschüttungsdatum für die von WEBRTC am nächsten gelegenen Datum, um eine hohe Kompatibilität mit gclient und anderen Tools zu gewährleisten.
Es ist möglich, dieses Verhalten zu verhindern, indem der Speicherort in Ihrem eigenen depot_tools -Repository angegeben wird, indem die Variable depot_tools_path definiert wird.
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
Die Bibliothek wird auf der Plattform und Architektur desselben Hosts kompiliert und verwendet. Hier sind einige CMake-Flags, die nützlich sein könnten, wenn Sie eine Kreuzkompilierung durchführen müssen.
Build_deb_package
Generieren Sie das Debian -Paket, standardmäßig aus, nur unter Linux verfügbar.
Build_RPM_Package
Generieren Sie das Red Hat -Paket, Standardeinstellungen bis Off, nur unter Linux verfügbar.
Build_tests
Bauen Sie WebRTC -Unit -Tests und verspottete Klassen wie FakeAudioCaptureModule .
Bauen_sample
Erstellen Sie eine ausführbare Datei im sample .
Depot_tools_path
Legen Sie diese Variable in Ihrem eigenen depot_tools -Verzeichnis ein. Dies verhindert, dass CMAKE den mit der gewünschten Webrtc -Revision entspricht.
Gn_extra_args
Fügen Sie dem Parameter gn gen --args zusätzliche Argumente hinzu.
Ninja_args
Argumente, die Sie während der Ausführung des Befehls ninja übergeben sollten.
Target_os
Zielbetriebssystem, der Wert wird im Argument --target_os des Befehls gn gen verwendet. Der Wert muss einer der folgenden sein:
androidchromeosioslinuxmacnaclwinTarget_cpu
Zielarchitektur, der Wert wird im Argument --target_cpu des Befehls gn gen verwendet. Der Wert muss einer der folgenden sein:
x86x64armarm64mipselWebtc_branch_head
Stellen Sie den Ast -Head -Ref zum Abrufen ein. Er ist auf die neueste Arbeitsweise eingestellt. Diese Variable wird ignoriert, wenn webrtc_revision festgelegt wird.
Webtc_revision
Legen Sie einen bestimmten Commit Hash auf, um es zu überprüfen.
Fühlen Sie sich frei, ein Problem zu eröffnen, wenn Sie möchten, dass ein Fehler behoben wird, eine neue Funktion zu besprechen oder eine Frage zu stellen. Ich bin offen, um Anfragen zu ziehen, solange Ihre Änderungen an den drei Hauptbetriebsbetrieb (Windows, MacOS und Linux) funktionieren.
Vergessen Sie nicht, Ihren Namen und Ihre E-Mail-Adresse in die AUTHORS Datei einzulegen! Sie können mich auch auf Twitter für weitere Diskussionen erreichen.
Vielen Dank an Dr. Alex Gouaillard, dass er ein ausgezeichneter Mentor für dieses Projekt ist.
Alles begann mit seinem «automatisierenden libwebrtc Build mit CMake» Blog -Artikel, der für mich eine großartige Inspirationsquelle war, um die einfachste Möglichkeit zu schaffen, die WebRTC -Bibliothek in jedem nativen Projekt zu verknüpfen.
Apache -Lizenz 2.0 © Axel Isouard