Ce référentiel contient une collection de scripts CMake pour vous aider à intégrer la mise en œuvre de Google à Google WeBrTC à l'intérieur de votre projet aussi simple que celle-ci:
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} ) Il produit également un fichier pkg-config si vous préférez la manière classique:
$ g++ `pkg-config --cflags LibWebRTC` main.cpp -o main `pkg-config --libs LibWebRTC`
Le tableau suivant affiche l'état actuel de ce projet, y compris les plates-formes et architectures prises en charge.
| x86 | x64 | bras | ARM64 | |
| Linux | ✔ | ✔ | ||
|---|---|---|---|---|
| macos | - | ✔ | - | - |
| Fenêtre | ✔ | ✔ |
depot_tools ) # 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 ou plus tard
Visual Studio 2015 avec mises à jour - Téléchargez l'installateur
Assurez-vous d'installer les composants suivants:
SDK Windows 10 avec outils de débogage pour Windows ou Windows Driver Kit 10 installé dans le même répertoire d'installation du SDK Windows 10.
Clone le référentiel, créez un répertoire de sortie, parcourez à l'intérieur, puis exécutez CMake.
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ mkdir out
$ cd out
$ cmake ..
Les utilisateurs de Windows doivent ajouter le suffixe Win64 à leur nom de générateur Visual Studio s'ils souhaitent créer la bibliothèque pour les plates-formes 64 bits, ils l'omettre pour les builds 32 bits et définiront la variable TARGET_CPU en conséquence.
> cmake -G "Visual Studio 14 2015" -DTARGET_CPU=x86
> cmake -G "Visual Studio 14 2015 Win64"
Ensuite, ils devront ouvrir le libwebrtc.sln situé à l'intérieur du répertoire de sortie actuel et construire le projet ALL_BUILD .
Les utilisateurs de l'UNIX devront simplement exécuter les commandes make suivantes.
$ make
# make install
La bibliothèque sera située à l'intérieur du dossier lib du répertoire de sortie actuel. Le dossier include contiendra les fichiers d'en-tête. Les scripts CMake seront placés à l'intérieur du répertoire lib/cmake/LibWebRTC .
Si vous utilisez XCode ou Visual Studio, vous pouvez simplement basculer entre le débogage et la configuration de la configuration de votre IDE. Les drapeaux de débogage seront annexés aux paramètres du générateur.
Sinon, vous devez définir la variable CMAKE_BUILD_TYPE pour Debug .
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
Au moment de la rédaction de ce fichier ReadMe, il n'y a aucun moyen approprié de détecter toute installation de la bibliothèque et des fichiers d'en-tête WebBrTC. En attendant, ce script CMake génère et déclare un package LibWebRTC qui sera très facile à utiliser pour vos projets.
Tout ce que vous avez à faire est d'inclure le package, puis d'intégrer le "fichier d'utilisation" qui trouvera automatiquement les bibliothèques requises, définira les indicateurs de compilation appropriés et incluent les répertoires.
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
target_link_libraries (my-app ${LIBWEBRTC_LIBRARIES} ) Un fichier PKG-Config est également fourni, vous pouvez obtenir les indicateurs de compilateur et de liaison requis en spécifiant LibWebRTC comme nom du package.
$ pkg-config --cflags --libs LibWebRTC
La dernière version de travail sera récupérée par défaut, sauf si vous décidez de récupérer un engagement spécifique en définissant son hachage dans la variable WebBrtc_Revision CMake, ou une autre référence de la tête de branche dans la variable WebBrtc_Branch_head .
$ cmake -DWEBRTC_REVISION=be22d51 ..
$ cmake -DWEBRTC_BRANCH_HEAD=refs/branch-heads/57 ..
Si les deux variables sont définies, elle se concentrera sur la récupération de l'engagement défini dans WebBrtc_revision .
CMake récupérera la dernière révision du référentiel depot_tools . Il obtiendra la date de validation du référentiel WebBrTC, puis découvrira depot_tools à l'engagement ayant la date la plus proche des WEBRTC, afin d'assurer une compatibilité élevée avec gclient et d'autres outils.
Il est possible d'éviter ce comportement en spécifiant l'emplacement dans votre propre référentiel depot_tools en définissant la variable Depot_Tools_Path .
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
La bibliothèque sera compilée et utilisable sur la même plate-forme et l'architecture du même hôte. Voici quelques drapeaux Cmake qui pourraient être utiles si vous avez besoin d'effectuer une compilation croisée.
Build_deb_package
Générez le package Debian, par défaut, disponible sous Linux uniquement.
Build_rpm_package
Générez le package Red Hat, par défaut, disponible sous Linux uniquement.
Build_tests
Construisez des tests unitaires Webbrtc et des classes moquées telles que FakeAudioCaptureModule .
Build_sample
Construisez un exécutable situé à l'intérieur du dossier sample .
Depot_tools_path
Définissez cette variable sur votre propre répertoire depot_tools . Cela empêchera CMake de récupérer celui qui correspond à la révision WebBrTC souhaitée.
GN_EXTRA_ARGS
Ajoutez des arguments supplémentaires au paramètre gn gen --args .
Ninja_args
Arguments à passer lors de l'exécution de la commande ninja .
Target_OS
Système d'exploitation cible, la valeur sera utilisée à l'intérieur de l'argument --target_os de la commande gn gen . La valeur doit être l'une des opérations suivantes:
androidchromeosioslinuxmacnaclwinTarget_cpu
Architecture cible, la valeur sera utilisée à l'intérieur de l'argument --target_cpu de la commande gn gen . La valeur doit être l'une des opérations suivantes:
x86x64armarm64mipselWebrtc_branch_head
Définissez le refuge de la branche pour récupérer, il est défini sur le dernier travail. Cette variable est ignorée si webrtc_revision est défini.
Webrtc_revision
Définissez un hachage de validation spécifique à la caisse.
N'hésitez pas à ouvrir un problème si vous souhaitez qu'un bug soit corrigé, pour discuter d'une nouvelle fonctionnalité ou poser une question. Je suis ouvert aux demandes de traction, tant que vos modifications fonctionnent sur les trois principaux OS (Windows, MacOS et Linux).
N'oubliez pas de mettre votre nom et votre adresse e-mail dans le fichier AUTHORS ! Vous pouvez également me joindre sur Twitter pour une discussion plus approfondie.
Un grand merci au Dr Alex Gouailard pour avoir été un excellent mentor pour ce projet.
Tout a commencé à partir de son article de blog «Automating Libwebrtc avec CMake», qui a été une excellente source d'inspiration pour moi de créer le moyen le plus simple de relier la bibliothèque Webrtc dans n'importe quel projet natif.
Licence Apache 2.0 © Axel Isouard