WebRTCコンパイルシステムのgnとninja
3774 ワード
WebRTCではgnを使用して構築スクリプトを生成し、ninjaを使用して構築します.
gnはGYPよりずっと速くて、多すぎて、あなたはまだまばたきしていないで、終わりました.
WebRTCをコンパイルする際に使うgnとninjaに関する知識を大まかに紹介します.コンパイルガイドを見たいのは、ここを見てください.Ubuntu 14.04でWebRTCをコンパイルします.
gn
gnの紹介はここです.https://www.chromium.org/developers/gn-build-configuration.このページにはgn各種referenceへのリンクもあります.
gnを使用してninja構築ファイルを生成する一般的なコマンド:
複数のパラメータがある場合は、次のように渡すことができます.
gnは、あるIDEに対するエンジニアリングファイルをWebRTCに生成することをサポートし、 eclipse, Eclipse CDT settings file vs, Visual Studio project/solution files.(default to VS 2015) vs2013 vs2015 xcode qtcreator, QtCreator project files. json
たとえば、次のコマンドを使用して、QtCreatorをサポートするプロジェクトファイルを生成します.
gn genを使用してコンストラクションファイルを生成した場合は、このバージョンのコンストラクションファイルにどのパラメータが指定されているかを確認するには、次のコマンドを使用します.
パラメータを表示するには、次のコマンドを使用します.https://www.chromium.org/developers/gn-build-configuration https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/quick_start.md https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md
または、次のコマンドを実行します.
Skiaのコンパイルでninjaを紹介したのを覚えています.その文章はここにあります.http://blog.csdn.net/foruok/article/details/50699101.
ninjaの公式サイトはこちらです.https://ninja-build.org/.
ninja(*.ninja)と接尾辞を付けたファイルはninjaの構築ファイルです.WebRTCではgn genを実行した後、out/Releaseでbuild.ninjaファイルが生成されます.このファイルをWebRTC全体の「Makefile」と見なすことができます.各モジュールのninjaファイルが呼び出されます.
WebRTCを完全にコンパイルするには、srcディレクトリで次のコマンドを実行します.
関連情報: WebRTC学習資料大全 Ubuntu 14.04でWebRTC をコンパイル WebRTCソースコードにおけるturnserverの使用方法 WebRTCのログを開く WebRTCにH 264コーデック をサポートさせる
gnはGYPよりずっと速くて、多すぎて、あなたはまだまばたきしていないで、終わりました.
WebRTCをコンパイルする際に使うgnとninjaに関する知識を大まかに紹介します.コンパイルガイドを見たいのは、ここを見てください.Ubuntu 14.04でWebRTCをコンパイルします.
gn
gnの紹介はここです.https://www.chromium.org/developers/gn-build-configuration.このページにはgn各種referenceへのリンクもあります.
gnを使用してninja構築ファイルを生成する一般的なコマンド:
// debug ,
gn gen out/Debug
// release
gn gen out/Release --args="is_debug=false"
--args
によってgnにパラメータを伝達することができ,具体的なパラメータの意味はWebRTCの構築システムによって説明されることに留意されたい.例えばis_debugオプションで、debugを構築するかreleaseバージョンを構築するかを決定します.複数のパラメータがある場合は、次のように渡すことができます.
gn gen out/Release --args="is_debug=false proprietary_codecs=true"
--args
で複数のパラメータを指定する場合、パラメータ間はスペースで区切られます.生成されたパラメータはout/Releaseのargs.gnファイルに格納されます.このファイルを直接開くことができます.--args
で指定されたパラメータは、WebRTC構築システム内の同名パラメータを上書きします.gnは、あるIDEに対するエンジニアリングファイルをWebRTCに生成することをサポートし、
--ide
によって指定される.どのIDEがサポートされているかは、次のコマンドを使用して確認できます.gn gen --help
サポート:たとえば、次のコマンドを使用して、QtCreatorをサポートするプロジェクトファイルを生成します.
gn gen out/Release --args="is_debug=false" --ide="qtcreator"
私はQtが好きなので、それを例に挙げます.もう一つ言えば、生成されたQtCreatorプロジェクトファイルはout/Release/qtcreator_projectの下にあります.QtCreatorを開いてall.creatorファイルをロードすればいいです.gn genを使用してコンストラクションファイルを生成した場合は、このバージョンのコンストラクションファイルにどのパラメータが指定されているかを確認するには、次のコマンドを使用します.
gn args out/Release --list
すべてのbuild argumentsと対応するドキュメント、および現在の値がリストされます.パラメータを表示するには、次のコマンドを使用します.
gn args out/Release --list="is_debug"
はい、gnはここまで紹介します.もっと知りたいなら、次のリンクを見てください.または、次のコマンドを実行します.
// gn , --args,-v
gn help switches
// switch help ,
// gn help --args,
// --args switch
gn help --args
// gn gen , IDE
gn gen --help
ninja Skiaのコンパイルでninjaを紹介したのを覚えています.その文章はここにあります.http://blog.csdn.net/foruok/article/details/50699101.
ninjaの公式サイトはこちらです.https://ninja-build.org/.
ninja(*.ninja)と接尾辞を付けたファイルはninjaの構築ファイルです.WebRTCではgn genを実行した後、out/Releaseでbuild.ninjaファイルが生成されます.このファイルをWebRTC全体の「Makefile」と見なすことができます.各モジュールのninjaファイルが呼び出されます.
WebRTCを完全にコンパイルするには、srcディレクトリで次のコマンドを実行します.
ninja -C out/Release
-Cオプションはninjaにout/Releaseディレクトリに入ってコンパイルするように伝えます.したがって、次のようになります.cd out/Release
ninja
モジュールをコンパイルするには、Makefileのコンストラクションターゲットのように、ninjaコマンドの後にモジュール名(build.ninjaファイルで定義されているコンストラクションターゲット)を付けることができます.たとえば、次のようになります.// webrtc/pc
ninja pc
// webrtc/media
ninja media
次のコマンドを使用してヘルプを表示します.ninja --help
ninjaはcleanなどのサブツールをサポートし、構築をクリーンアップします.使用方法は次のとおりです.ninja -t clean
モジュールをクリーンアップするには、次のようにします.ninja -t clean pc
より多くのサブツールが表示されます.ninja -t list
まずそうしましょう.今度gnのプロジェクトファイルを書いて、次にninjaファイルを書きます.関連情報: