commit | 3d8cbb0f2e96517ac3353f559105f42388ad6c9f | [log] [tgz] |
---|---|---|
author | David 'Digit' Turner <digit@google.com> | Thu Oct 06 12:20:43 2022 +0200 |
committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Jan 17 16:16:05 2024 +0000 |
tree | 96dc3da9d95ed940d473b107e1e5c2694b3b3578 | |
parent | 2be978c492c5e044e0c6102415718b729c902c13 [diff] |
util.h: Add misc functions. Introduce multiple utility functions that will be used by future patches. - IsAbsolutePath() returns true if a path is absolute for the current platform. - GetCurrentDir() returns the path to the current directory. - GetCurrentExecutableDir() returns the path of the current executable, which will be used in unit-tests in future patches. - GetLastErrorString(DWORD) returns a Win32 error string for a specific error code. - Similarly Win32Fatal(const char*, DWORD, const char*) is used to retrieve a Win32 error message for a specific error code. - ErrnoFatal() is a variant of Fatal() that prints strerror(errno) (similar to Win32Fatal(), but ErrnoFatal() also works on Win32). - StringFormat() and StringAppendFormat() are used to return formatted std::string instances, or append formatted content to one. Fuchsia-Topic: advanced-ipc Original-Change-Id: Iba0ff0f6a534df373ba9720c45ecce905391c904 Original-Change-Id: I2535cb53e3f1b048d3fa245799515b909ec97392 Original-Change-Id: I18f486a9e2c01f0260b097c0451046117af38034 Original-Change-Id: I33e5d24c2ebb109b7698e935afa0f1c66bdf2f2a Original-Change-Id: Idcbe4702e29ace896cc36df39aca6e964a6a0e8d Original-Change-Id: I762cd7cff1989adeb3e1ae53e9119e82e4a50b3d Original-Change-Id: I2e6e54d04f4f12ae88186d08e53ef81a58519d5b Original-Change-Id: Ic666d6fcc8cdb684aff5d8d44e5fbc81ed9ff198 Change-Id: I4282242f64f1b03d431b9382aab727bbd32118d1 Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/github.com/ninja-build/ninja/+/970035 Reviewed-by: Tyler Mandry <tmandry@google.com> Commit-Queue: David Turner <digit@google.com> Reviewed-by: David Fang <fangism@google.com>
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.
You can either build Ninja via the custom generator script written in Python or via CMake. For more details see the wiki.
./configure.py --bootstrap
This will generate the ninja
binary and a build.ninja
file you can now use to build Ninja with itself.
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