このリポジトリには、CMAKEスクリプトのコレクションが含まれており、プロジェクト内にGoogleのネイティブWeBRTC実装を埋め込むのに役立ちます。
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 | |
| Linux | ✔ | ✔ | ||
|---|---|---|---|---|
| macos | - | ✔ | - | - |
| Windows | ✔ | ✔ |
depot_toolsインストール内にあるインタープリターを使用するため、Windowsのオプション) # 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 Driver Kit 10のデバッグツールを備えたWindows 10 SDK。
リポジトリをクローンし、出力ディレクトリを作成し、内部で閲覧してからcmakeを実行します。
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ mkdir out
$ cd out
$ cmake ..
Windowsユーザーは、64ビットプラットフォーム用にライブラリを構築する場合は、Visual Studioジェネレーター名に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を使用している場合は、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 LibWebRTCパッケージ名として指定することにより、必要なコンパイラとリンカーフラグを取得できます。
$ pkg-config --cflags --libs LibWebRTC
WebRTC_REVISION CMAKE変数にハッシュを設定して特定のコミットを取得することを決定しない限り、最新の作業リリースはデフォルトでフェッチされます。
$ cmake -DWEBRTC_REVISION=be22d51 ..
$ cmake -DWEBRTC_BRANCH_HEAD=refs/branch-heads/57 ..
両方の変数が設定されている場合、 webrtc_revision内で定義されているコミットの取得に焦点を当てます。
Cmakeは、 depot_toolsリポジトリの最新の改訂を取得します。 WebrTCリポジトリのコミット日を取得し、 gclientおよびその他のツールとの高い互換性を確保するために、WeBRTCに最も近い日付を持つdepot_toolsをチェックアウトします。
depot_tools_path変数を定義することにより、場所を独自のdepot_toolsリポジトリに指定することにより、この動作を防ぐことができます。
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
ライブラリは、同じホストのプラットフォームとアーキテクチャでコンパイルされ、使用可能になります。クロスコンパイルを実行する必要がある場合に役立つ可能性のあるcmakeフラグを以下に示します。
build_deb_package
debianパッケージを生成します。デフォルトはオフで、Linuxのみで利用可能です。
build_rpm_package
defortは、linuxのみで利用可能なdefaultがオフになっているRed Hatパッケージを生成します。
build_tests
webrtcユニットテストとFakeAudioCaptureModuleなどのモックされたクラスを構築します。
build_sample
sampleフォルダー内にある実行可能ファイルを構築します。
depot_tools_path
この変数を独自のdepot_toolsディレクトリに設定します。これにより、Cmakeが目的のWebrTC改訂と一致するものを取得することができなくなります。
gn_extra_args
gn gen --argsパラメーターに追加の引数を追加します。
ninja_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ファイル内に名前と電子メールアドレスを入れることを忘れないでください!さらに議論するためにTwitterで私に連絡することもできます。
このプロジェクトの優れたメンターであることをアレックス・グーアイヤード博士に感謝します。
すべてが彼の«Cmakeでlibwebrtcビルドを自動化する»ブログ記事から始まりました。これは、ネイティブプロジェクトでWeBRTCライブラリをリンクする最も簡単な方法を作成するための素晴らしいインスピレーションのソースでした。
Apacheライセンス2.0©Axel Isouard