이 저장소는 프로젝트 내부에 Google의 기본 WEBRTC 구현을 간단하게 포함시키는 데 도움이되는 CMAKE 스크립트 모음이 포함되어 있습니다.
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} ) 또한 클래식 방식을 선호하는 경우 pkg-config 파일을 생성합니다.
$ g++ `pkg-config --cflags LibWebRTC` main.cpp -o main `pkg-config --libs LibWebRTC`
다음 표는 지원되는 플랫폼 및 아키텍처를 포함 하여이 프로젝트의 현재 상태를 표시합니다.
| x86 | x64 | 팔 | ARM64 | |
| 리눅스 | ✔ | ✔ | ||
|---|---|---|---|---|
| 마코스 | - | ✔ | - | - |
| 창 | ✔ | ✔ |
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 이상
업데이트가 포함 된 Visual Studio 2015- 설치 프로그램을 다운로드하십시오
다음 구성 요소를 설치해야합니다.
Windows 10 SDK Windows 또는 Windows 드라이버 키트를위한 디버깅 도구가 있는 Windows 10 SDK 설치 디렉토리에 설치되었습니다.
저장소를 복제하고 출력 디렉토리를 만들고 내부를 탐색 한 다음 CMAKE를 실행하십시오.
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ mkdir out
$ cd out
$ cmake ..
Windows 사용자는 64 비트 플랫폼 용 라이브러리를 구축하려면 Visual Studio Generator 이름에 Win64 접미사를 추가 해야합니다 . 32 비트 빌드의 경우 생략하고 TARGET_CPU 변수를 적절하게 정의합니다.
> cmake -G "Visual Studio 14 2015" -DTARGET_CPU=x86
> cmake -G "Visual Studio 14 2015 Win64"
그런 다음 현재 출력 디렉토리 내부에 위치한 libwebrtc.sln 을 열고 ALL_BUILD 프로젝트를 구축해야합니다.
UNIX 사용자는 다음 make 명령을 실행하면됩니다.
$ make
# make install
라이브러리는 현재 출력 디렉토리의 lib 폴더 내부에 있습니다. include 폴더에는 헤더 파일이 포함됩니다. CMAKE 스크립트는 lib/cmake/LibWebRTC 디렉토리 내부에 배치됩니다.
Xcode 또는 Visual Studio를 사용하는 경우 Debug를 전환하고 IDE에서 릴리스 구성을 전환 할 수 있습니다. 디버깅 플래그는 발전기의 매개 변수에 추가됩니다.
그렇지 않으면 CMAKE_BUILD_TYPE 변수를 Debug 로 정의해야합니다.
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
이 readme 파일을 작성할 때 WebRTC 라이브러리 및 헤더 파일의 설치를 감지하는 올바른 방법은 없습니다. 그 동안이 Cmake 스크립트는 프로젝트에 매우 쉽게 사용할 수있는 LibWebRTC 패키지를 생성하고 선언합니다.
패키지를 포함한 다음 필요한 라이브러리를 자동으로 찾아서 적절한 컴파일 플래그를 정의하고 디렉토리를 포함시키는 "파일 사용"을 포함시키는 것입니다.
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
target_link_libraries (my-app ${LIBWEBRTC_LIBRARIES} ) pkg-config 파일도 제공되며 LibWebRTC 패키지 이름으로 지정하여 필요한 컴파일러 및 링커 플래그를 얻을 수 있습니다.
$ pkg-config --cflags --libs LibWebRTC
해시를 webrtc_revision cmake 변수 또는 webrtc_branch_head 변수로 설정하여 특정 커밋을 검색하기로 결정하지 않는 한 최신 작업 릴리스는 기본적으로 가져옵니다.
$ cmake -DWEBRTC_REVISION=be22d51 ..
$ cmake -DWEBRTC_BRANCH_HEAD=refs/branch-heads/57 ..
두 변수 모두 설정되면 WebRTC_Revision 내부에서 정의 된 커밋을 가져 오는 데 중점을 둡니다.
CMAKE는 depot_tools 저장소의 최신 개정을 검색합니다. WebRTC 저장소의 커밋 날짜를 얻은 다음 gclient 및 기타 도구와의 높은 호환성을 보장하기 위해 WebRTC에 가장 가까운 날짜를 가진 커밋에 대한 depot_tools 체크 아웃합니다.
DeROT_TOOLS_PATH 변수를 정의하여 자신의 depot_tools 저장소에 위치를 지정 하여이 동작을 방지 할 수 있습니다.
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
라이브러리는 동일한 호스트의 플랫폼 및 아키텍처에서 컴파일되고 사용할 수 있습니다. 다음은 크로스 컴파일을 수행 해야하는 경우 유용 할 수있는 몇 가지 Cmake 플래그입니다.
build_deb_package
Linux에서만 사용할 수있는 데비안 패키지, 기본값 꺼짐, 꺼짐을 생성하십시오.
build_rpm_package
Linux에서만 사용할 수있는 Red Hat 패키지, 기본값 끄기, 꺼짐을 생성하십시오.
build_tests
FakeAudioCaptureModule 과 같은 WebRTC 단위 테스트 및 조롱 클래스를 구축하십시오.
build_sample
sample 폴더 내부에있는 실행 파일을 빌드하십시오.
Depot_tools_path
이 변수를 자신의 depot_tools 디렉토리로 설정하십시오. 이를 통해 CMAKE가 원하는 WEBRTC 개정판과 일치하는 것을 가져 오는 것을 방지합니다.
gn_extra_args
gn gen --args 매개 변수에 추가 인수를 추가하십시오.
닌자 _args
ninja 명령을 실행하는 동안 통과 할 인수.
Target_os
대상 운영 체제에서 값은 gn gen 명령의 --target_os 인수 내부에서 사용됩니다. 값은 다음 중 하나 여야합니다 .
androidchromeosioslinuxmacnaclwintarget_cpu
대상 아키텍처, 값은 gn gen 명령의 --target_cpu 인수 내에서 사용됩니다. 값은 다음 중 하나 여야합니다 .
x86x64armarm64mipselwebrtc_branch_head
Branch Head Ref를 검색하도록 설정하면 최신 작업 중 하나로 설정됩니다. Webrtc_revision이 설정된 경우이 변수는 무시됩니다.
Webrtc_revision
특정 커밋 해시를 체크 아웃하도록 설정하십시오.
버그를 수정하려면 새로운 기능을 논의하거나 질문을하려면 문제를 열어주십시오. 수정이 3 개의 주요 OS (Windows, MacOS 및 Linux)에서 작업하는 한 요청을 가져올 수 있습니다.
AUTHORS 파일 내부에 이름과 이메일 주소를 넣는 것을 잊지 마십시오! 더 많은 토론을 위해 트위터에서 저에게 연락 할 수도 있습니다.
이 프로젝트의 훌륭한 멘토가 된 Alex Gouaillard 박사에게 감사드립니다.
CMAKE»블로그 기사를 사용하여 그의«자동화 LibweBRTC 빌드에서 시작되었습니다. 이것은 모든 기본 프로젝트에서 WEBRTC 라이브러리를 연결하는 가장 쉬운 방법을 만들기위한 영감의 원천이었습니다.
아파치 라이센스 2.0 © Axel Isouard