Move BuildConfig to its own source file.

This also adds methods for encoding/decoding the value
into a string, for inter-process-communication.

Fuchsia-Topic: persistent-mode
Original-Change-Id: I2c103e5fed54a148ba90b41fe05a0270e40ce995
Original-Change-Id: Idedf8cdc45d18a2fb70879c2e47e14773e0073c3
Original-Change-Id: Id5a3fa7f2d7595a0091029996809a2049e940c63
Original-Change-Id: I9cba704c81426276536f4b85bcf7acb48e343ce3
Original-Change-Id: Ia9dea4e0d5c5cfdfa83e8fed237df886d51c3cee
Original-Change-Id: Iaa7e7591f1c15a3e8341a896e4bc37ada0a1ecb7
Change-Id: I51ab53b4ecc573de2b49e11d073ac20a43f5f2c2
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/github.com/ninja-build/ninja/+/975455
Reviewed-by: David Fang <fangism@google.com>
Commit-Queue: David Turner <digit@google.com>
12 files changed
tree: cf706299017f80399287cdcbb8183e524d34f2b8
  1. .github/
  2. doc/
  3. misc/
  4. src/
  5. windows/
  6. .clang-format
  7. .clang-tidy
  8. .editorconfig
  9. .gitignore
  10. appveyor.yml
  11. CMakeLists.txt
  12. configure.py
  13. CONTRIBUTING.md
  14. COPYING
  15. README.fuchsia
  16. README.md
  17. RELEASING.md
README.md

Ninja

Ninja is a small build system with a focus on speed. https://ninja-build.org/

See the manual or doc/manual.asciidoc included in the distribution for background and more details.

Binaries for Linux, Mac and Windows are available on GitHub. Run ./ninja -h for Ninja help.

Installation is not necessary because the only required file is the resulting ninja binary. However, to enable features like Bash completion and Emacs and Vim editing modes, some files in misc/ must be copied to appropriate locations.

If you're interested in making changes to Ninja, read CONTRIBUTING.md first.

Building Ninja itself

You can either build Ninja via the custom generator script written in Python or via CMake. For more details see the wiki.

Python

./configure.py --bootstrap

This will generate the ninja binary and a build.ninja file you can now use to build Ninja with itself.

CMake

cmake -Bbuild-cmake
cmake --build build-cmake

The ninja binary will now be inside the build-cmake directory (you can choose any other name you like).

To run the unit tests:

./build-cmake/ninja_test