WebRTCコンパイルシステムのgnとninja


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構築ファイルを生成する一般的なコマンド:
//    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
サポート:
  • 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 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はここまで紹介します.もっと知りたいなら、次のリンクを見てください.
  • 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

  • または、次のコマンドを実行します.
    //    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ファイルを書きます.
    関連情報:
  • WebRTC学習資料大全
  • Ubuntu 14.04でWebRTC
  • をコンパイル
  • WebRTCソースコードにおけるturnserverの使用方法
  • WebRTCのログを開く
  • WebRTCにH 264コーデック
  • をサポートさせる