Ninja Build

6941 ワード

NinjaBuild  
Using the Ninja build system 
build
Updated 
Mar 28, 2014 by  [email protected]
  • Using it
  • Configure your system to use Ninja

  • Build instructions
  • Android
  • Windows
  • Debugging
  • Without Visual Studio

  • Tweaks
  • Building through errors
  • Parallelism
  • More options
  • Custom build configs

  • Bugs

  • Ninja is a build system written with the specific goal of improving the edit-compile cycle time. It is used by default everywhere except when building for iOS.
    Ninjaはコンパイルサイクルの節約に力を入れているコンパイルシステムで、ios以外は利用できます.
    Ninja behaves very similar to Make -- the major feature is that it starts building files nearly instantly. (It has a number of minor user interface improvements to make as well.)
    NinjaとMakeの表現は似ています.主な特診はすぐにコンパイルされます.
    Read more about Ninja at the Ninja home page.

    Using it


    Configure your system to use Ninja


    Install


    Ninja is included in depot_tools as well as gyp, so there's nothing to install.

    Build instructions


    To build Chrome:
    cd /path/to/chrome/src
    ninja -C out/Debug chrome

    Specify out/Release for a release build. I recommend setting up an alias so that you don't need to type out that build directory path.
    If you want to build all targets, use ninja -C out/Debug all. It's faster to build only the target you're working on, like 'chrome' or 'unit_tests'.

    Android


    Identical to Linux, just make sure OS=android is in your GYP_DEFINES. You want to build one of the apk targets, e.g. content_shell_apk.

    Windows


    Similar to Linux. It uses MSVS's cl.exe, link.exe, etc. so you still need to have VS installed. To use it, open cmd.exe, go to your chrome checkout, and run:
    Linuxと同様にMSVS's cl.exe,linkを用いる.exe、そのため、VSをインストールする必要があります.具体的な使い方は、cmdを使用して、ディレクトリをchromeに切り替えます.
    set GYP_DEFINES=component=shared_library
    python build\gyp_chromium
    ninja -C out\Debug chrome.exe

    component=shared_library optional but recommended for faster links.
    オプションですが、より速くリンクできるように設定することをお勧めします.
    You can also set GYP_GENERATORS=ninja,msvs to get both VS projects generated if you want to use VS just to browse/edit (but then gyp takes twice as long to run).
     GYP_GENERATORS=ninja、msvsはninjaとVSエンジニアリングを取得するために使用され、どちらかを選択できます.
    If you're using Express or the Windows SDK by itself (rather than using a Visual Studio install), you'll need to run from a vcvarsall command prompt.
    Express版またはWindows SDK(Vsがインストールされていない)を使用する場合は、vcvarsallコマンドプロンプトから実行する必要があります.

    Debugging


    Miss VS for debugging?
    devenv.com /debugexe chrome.exe --my-great-args "go here" --single-process etc

    Miss Xcode for debugging? Read http://dev.chromium.org/developers/debugging-on-os-x/building-with-ninja-debugging-with-xcode

    Without Visual Studio


    That is, building with just the WinDDK. This is documented in the regular build instructions.

    Tweaks


    Building through errors


    Pass a flag like -k3 to make Ninja build until it hits three errors instead of stopping at the first.

    Parallelism


    Pass a flag like -j8 to use 8 parallel processes, or -j1 to compile just one at a time (helpful if you're getting weird compiler errors). By default Ninja tries to use all your processors.

    More options


    There are more options. Run ninja --help to see them all.

    Custom build configs


    You can write a specific build config to a specific output directory via the -G flags to gyp. Here's an example from jamesr: build/gyp_chromium -Gconfig=Release -Goutput_dir=out_profiling -Dprofiling=1 -Dlinux_fpic=0

    Bugs


    If you encounter any problems, please file a bug at http://crbug.com/new with label ninja and cc thakis@ or scottmg@. Assume that it is a bug in Ninja before you bother anyone about e.g. link problems.