Googleのgn構築システム

1113 ワード

GNとは何ですか.
GNはNinjaコンストラクションファイルを生成するメタコンストラクションシステムで、NinjaでChromiumを構築することができます.
どうしてGYPから切り替えたの?
  • GNファイルはGYPファイルよりも可読性と保守性が高いと信じています.
  • GN快速:
  • GNはGYPより20倍速い.
  • GNは構築の一部としてサポートされており、Ninjaの必要に応じて自動的に再運転される.これにより、コンストラクションファイルを変更する際にGNの再実行を覚える必要がなくなります.
  • GNは、依存を実行するためのより良いツールを提供しています(gn checkおよびvisibilitypublic_depsおよびdata_depsオプションのいくつかの例を参照).
  • GNは構築図を照会するツールを提供してくれた.たとえば、「Xは何に依存しているのか」と「誰がYに依存しているのか」を聞くことができます.

  • ChromiumがGYP->GNから移行した状態は何ですか?
    2016年10月現在:
  • すべてのChromiumバージョンが切り替わりました.
  • ほとんどのGYPファイルがChromiumバージョンから削除されている.
  • したがって、GYPを使用して構築することはできません.
  • 変換が必要な「Closure Compilation」ビルダーには、まだいくつかのGYPファイルが存在する.
  • 関連項目(例えばV 8、Skia)は、自分の都合でGYPをサポートしている可能性がある.
  • gclientがGYPを使用しないようにするなど、可能性を整理しています.DEFINES.

  • GNについてもっと情報が欲しい!
    次のリンクを参照してください.
  • 快速スタート
  • よく質問
  • 言語と操作の詳細
  • 参考:内蔵gn helpドキュメント.
  • スタイルガイド
  • クロスコンパイルとツールチェーン
  • Hacking GN自体
  • Standaline GNプロジェクト
  • バイナリファイルの更新