Skip to content

okuoku/ninja

 
 

Repository files navigation

Ninja

Based on original version from http://martine.github.com/ninja/

Ninja is a small build system with a focus on speed. It differs from other build systems in two major respects:

  • it is designed to have its input files generated by a higher-level build system,
  • it is designed to run builds as fast as possible.

Note

I have forked the orignal version to support MINGW, MSYS, and CYGWIN builds too.

Ninja should be usable on most platforms as cmake do!

Claus Klein

See the manual -- http://ClausKlein.github.com/ninja/doc/manual.html or doc/manual.asciidoc included in the distribution -- for background and more details.

Download the current Ninja source code as zip file from https://github.com/ClausKlein/ninja/zipball/develop

Getting a source code version of Ninja with git to work with:

git clone git://github.com/ClausKlein/ninja.git
cd ninja
make ninja

Building

To bootstrap Ninja and you have python istalled, run python ./bootstrap.py. It first blindly compiles all non-test source files together, then re-builds Ninja using itself and ./build.ninja. You should end up with a Ninja binary in the source root. Run ./ninja -h for help.

If you like to use cmake and make to bootstrap Ninja create a build dir and generate your build project:

mkdir -p build && cd build
cmake  .. && make
# or you have already ninja installed
cmake -G Ninja .. && ninja

You may also create a Mac OSX Package Maker installer with cpack:

cpack -C CPackConfig.cmake -G PackageMaker

On Windows you may want to create "Null Soft Installer":

cpack -C CPackConfig.cmake -G NSIS

The only file of interest to a user is the resulting Ninja binary.

You may install it yourself with:

sudo install ninja /usr/local/bin
# or
sudo make install

Contributing

If you want to work with code, you should use git-flow . Fork my git repository. Then, run:

git clone --recursive git@github.com:<username>/ninja.git
git branch develop origin/develop
git flow init -d
git flow feature start <your feature>

Then, after develop and testing your work, commit your changes:

git flow feature publish <your feature>

When done, open a pull request to your feature branch.

HACKING :)


License

About

a small build system similar to make

Resources

License

Unknown, Apache-2.0 licenses found

Licenses found

Unknown
License.txt
Apache-2.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.7%
  • Python 7.3%
  • C 5.8%
  • Shell 1.6%
  • Emacs Lisp 0.6%