Hi there,
first of all thanks for creating an incredibly fast build tool :)
I am currently looking into replacing our make-based system with one based on ninja.
There is one feature in our current system that could be implemented in ninja, I just don't know if it contradicts your goals.
We have the ability to create a log file per target. This is for example used to store compiler output and create compiler
warning reports after a build. The benefit of having individual log files is that you can create a full report even after
incremental builds.
What do you think about adding a new "rule variable", e.g. log:
rule cc
log = ${out}.log
command = ...
Ninja has the complete command output in a buffer anyway. All it needs to do is dump it to the specified file after
the command is done (in addition to stdout).
I know this can easily be done using a wrapper script, which was a reason to reject ninja feature requests. But I'd like
to work without wrapper scripts whenever possible to avoid the extra overhead of spawning additional processes (our
builds are running under Windows) and have a minimum of dependencies in the build system.
From my point of view it sounds like little effort for ninja, should have no performance impact as long as it is not used.
But to those build using it it will make things a lot easier and potentially even faster (compared to doing the same with
wrapper scripts).
Please let me know what you think. I'd like to know what the chances are of such a feature before I start thinking about
how to implement it ;-).