Este repositorio contiene una colección de scripts de CMake para ayudarlo a incrustar la implementación de WEBRTC nativa de Google dentro de su proyecto tan simple como esta:
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} ) También produce un archivo pkg-config si prefiere la forma clásica:
$ g++ `pkg-config --cflags LibWebRTC` main.cpp -o main `pkg-config --libs LibWebRTC`
La siguiente tabla muestra el estado actual de este proyecto, incluidas las plataformas y arquitecturas compatibles.
| x86 | x64 | brazo | brazo | |
| Linux | ✔ | ✔ | ||
|---|---|---|---|---|
| macosa | - | ✔ | - | - |
| Windows | ✔ | ✔ |
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 o posterior
Visual Studio 2015 con actualizaciones - Descargue el instalador
Asegúrese de instalar los siguientes componentes:
Windows 10 SDK con herramientas de depuración para Windows o Windows Driver Kit 10 instalado en el mismo directorio de instalación de SDK de Windows 10.
Clonar el repositorio, crear un directorio de salida, navegar dentro de él y luego ejecutar cmake.
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ mkdir out
$ cd out
$ cmake ..
Los usuarios de Windows deben agregar el sufijo Win64 al nombre de su generador de Visual Studio si desean construir la biblioteca para plataformas de 64 bits, lo omitirán para compilaciones de 32 bits y definirán la variable TARGET_CPU en consecuencia.
> cmake -G "Visual Studio 14 2015" -DTARGET_CPU=x86
> cmake -G "Visual Studio 14 2015 Win64"
Luego tendrán que abrir el libwebrtc.sln ubicado dentro del directorio de salida actual y construir el proyecto ALL_BUILD .
Los usuarios de UNIX solo tendrán que ejecutar los siguientes comandos make .
$ make
# make install
La biblioteca se ubicará dentro de la carpeta lib del directorio de salida actual. La carpeta include contendrá los archivos de encabezado. Los scripts CMake se colocarán dentro del directorio lib/cmake/LibWebRTC .
Si está utilizando XCode o Visual Studio, simplemente puede cambiar entre la configuración de depuración y liberación de su IDE. Las banderas de depuración se agregarán a los parámetros del generador.
De lo contrario, debe definir la variable CMAKE_BUILD_TYPE para Debug .
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
Al momento de escribir este archivo ReadMe, no hay una forma adecuada de detectar ninguna instalación de la biblioteca WebRTC y los archivos de encabezado. Mientras tanto, este script CMake genera y declara un paquete LibWebRTC que será muy fácil de usar para sus proyectos.
Todo lo que tiene que hacer es incluir el paquete, luego incrustar el "archivo de uso" que encontrará automáticamente las bibliotecas requeridas, definirá los indicadores de compilación adecuados e incluya directorios.
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
target_link_libraries (my-app ${LIBWEBRTC_LIBRARIES} ) También se proporciona un archivo PKG-config, puede obtener los indicadores del compilador y enlazador requeridos especificando LibWebRTC como el nombre del paquete.
$ pkg-config --cflags --libs LibWebRTC
El último lanzamiento de trabajo se obtendrá de forma predeterminada, a menos que decida recuperar una confirmación específica configurando su hash en la variable WebRTC_revision CMake, u otra referencia de la cabeza de la rama en la variable WEBRTC_BRANCH_EAD .
$ cmake -DWEBRTC_REVISION=be22d51 ..
$ cmake -DWEBRTC_BRANCH_HEAD=refs/branch-heads/57 ..
Si se establecen ambas variables, se centrará en obtener la confirmación definida dentro de WebRTC_revision .
CMake recuperará la última revisión del repositorio depot_tools . Obtendrá la fecha de confirmación del repositorio de WEBRTC, luego se revisará depot_tools a la confirmación que tiene la fecha más cercana a WebRTC, para garantizar una alta compatibilidad con gclient y otras herramientas.
Es posible evitar este comportamiento especificando la ubicación en su propio repositorio depot_tools definiendo la variable Depot_Tools_Path .
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
La biblioteca será compilada y utilizable en la plataforma y arquitectura del mismo host. Aquí hay algunas banderas CMake que podrían ser útiles si necesita realizar la compilación cruzada.
Build_deb_package
Genere el paquete Debian, predeterminado, está disponible, disponible solo en Linux.
Build_rpm_package
Genere el paquete Red Hat, predeterminado a OFF, disponible solo en Linux.
Build_tests
Construya pruebas unitarias de WebRTC y clases burladas como FakeAudioCaptureModule .
Build_sample
Construya un ejecutable ubicado dentro de la carpeta sample .
Depot_tools_path
Establezca esta variable en su propio directorio depot_tools . Esto evitará que Cmake busque el que coincida con la revisión deseada de WebRTC.
Gn_extra_args
Agregue argumentos adicionales al parámetro gn gen --args .
Ninja_args
Argumentos para aprobar mientras ejecuta el comando ninja .
Target_os
Sistema operativo objetivo, el valor se usará dentro del argumento --target_os del comando gn gen El valor debe ser uno de los siguientes:
androidchromeosioslinuxmacnaclwinTarget_cpu
Arquitectura de destino, el valor se usará dentro del argumento --target_cpu del comando gn gen El valor debe ser uno de los siguientes:
x86x64armarm64mipselWebrtc_Branch_head
Establezca la referencia de la cabeza de la rama para recuperar, está configurado en el último trabajo. Esta variable se ignora si se establece WEBRTC_REVISION .
Webrtc_revision
Establezca un hash de confirmación específico para salir.
Siéntase libre de abrir un problema si desea que se solucione un error, discutir una nueva característica o hacer una pregunta. Estoy abierto a las solicitudes de extracción, siempre y cuando sus modificaciones funcionen en los tres principales del sistema operativo (Windows, MacOS y Linux).
¡No olvide poner su nombre y dirección de correo electrónico dentro del archivo AUTHORS ! También puede comunicarse conmigo en Twitter para una mayor discusión.
Muchas gracias al Dr. Alex Gouaillard por ser un excelente mentor para este proyecto.
Todo comenzó desde su artículo de blog «Automating Libwebrtc con cmake», que fue una gran fuente de inspiración para crear la forma más fácil de vincular la biblioteca WebRTC en cualquier proyecto nativo.
Licencia Apache 2.0 © Axel Isouard