we'd like to release 1.10.1 from current
1.10.0 introduced the restat tool, which CMake 3.17 uses to update the timestamps in .ninja_log to avoid having to run some rules twice after regenerating. This didn't work on Windows though, as you can't write to a file which is opened for writing by another process there. To clarify what I mean imagine you have the following hierarchy:
b.) -> regenerate by calling CMake
c.) -> -> CMake calls ninja -t restat
d.) ninja continues the build and rereads the build manifest
Between a.) and d.) the outer ninja process would (unnecessarily) open .ninja_log, but not write anything to it yet. c.) would then fail on Windows.
ninja will now open .ninja_log on the first write - so during d.) - or if it has finished. In the future we could even avoid creating .ninja_log if it would be empty, but I didn't want to change too much of the behavior in a minor release (it would also require touching some unit tests).
The other change is that the automatic build on GitHub Actions now builds binaries compatible with macOS 10.12 (previously they required 10.14 IIRC).
Please test a build of the master branch with your projects and report any problems. Thanks!