Ninja Build

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.exelink.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.

你可能感兴趣的:(chromium,ninja)