samurai 0.4
New features
- Add support for
--version
option for compatibility with existing higher-level build tools like cmake and meson. - Now builds on macOS, which does not support the POSIX
O_DIRECTORY
orst_mtim
member ofstruct stat
. - Better messages from
-d explain
for missing/invalid dependencies or build log entry.
Bug fixes
- Generator action with no entry in build log was incorrectly considered dirty, causing a re-run of the ninja generation (cmake, meson, etc) on the first build.
- Avoid large stack allocations during
.ninja_deps
processing and when user specified a large maximum number of jobs. - Fix
-k maxfail
handling when multiple jobs fail at the same time (regression in 0.3).
Cleanups
- Prefer C99 functions/types over POSIX in some cases.
- Store modification time internally as
int64_t
for compatibility with future ninja release and to avoidstruct timespec
requirement. - Remove redundant call to
stat
when recording dependencies. - Mark lexing keyword table as
const
to move to read-only section of executable.
Acknowledgements
Thanks to Bernhard Weichel, Jonathan Neuschäfer, Iru Cai, and Emil Velikov for bug reports and/or pull requests!