| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This reverts commit cfd0bd3007b291df505f8c45083453310142d681.
See #1662.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
https://groups.google.com/forum/#!msg/ninja-build/YQuGNrECI-4/ti-lAs9SPv8J
discusses a case where an rule updates its output file and then
fails. The next run of ninja considers the ouptut file clean
and doesn't rebuild it. Always stat output files after they are
built, and write the mtime into .ninja_log. Consider output files
dirty if the recorded mtime is older than the most recent input
file.
|
|
|
|
|
|
|
|
|
| |
Visual C++ 2015 warns if a local variable hides visibility of another variable
in a higher scope. Since this project declares warnings as errors, ninja_test
simply won't build on Visual C++ 2015.
The variables have been renamed and scope limited as appropriate, so that
ninja_test will build without error now on Visual C++ 2015.
|
|
|
|
|
|
|
|
|
|
| |
Recompacting the build log used to be slow, so it made sense to print this
message. We then made recompaction much faster, but didn't remove this
message back then.
The deps log only has it because the build log had it.
Since both steps are effectively instant in practice, remove these log messages.
|
|
|
|
| |
Now tests don't print anything. Non-test behavior is unchanged.
|
|
|
|
|
|
|
| |
Turns out gtest was pulling in sys/stat.h, and we were
using stat() through that in tests. This doesn't work
with old MSVCs, so we should probably replace that with
RealDiskInterface in a follow-up.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Hopefully fixes the build on Windows.
|
| |
|
| |
|
| |
|
|\
| |
| | |
Make sure no stale test file exists before running build log tests.
|
| | |
|
|/ |
|
|
|
|
| |
That's what I get for making last-second adjustments before checking in!
|
|
|
|
|
| |
(Committing this on top of b56fe80 since they're related,
but I may end up reverting both.)
|
|
|
|
|
|
|
|
| |
`man unlink` says this is necessary, and according to a report by
Claus Klein, omitting them breaks the build on OS X 10.5 with gcc 4.7
(see issue #396).
(On Windows, ninja's util.h includes a define for unlink.)
|
|
|
|
|
|
|
|
|
| |
As described on https://github.com/martine/ninja/pull/349 , this test
shouldn't have been passing. Fixing a Valgrind issue showed that the
test was wrong. Thankfully it wasn't a critical issue.
The new code verifies that we either succeed or report an error when
parsing -- the only behavior we really care about is not crashing.
|
|
|
|
|
| |
Log format 4 was introduced in January.
There's been plenty of time to migrate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.build_log load time 350ms -> 17ms, filesize 197MB -> 1.6MB on
Mac. On Windows, it's 500ms -> 20ms.
Makes the build log a lot less useful for scripts, but there could
be a tool for use cases that need log information. A prototype of
such a tool is in https://github.com/nico/ninja/commit/1b243d311
The hash function is 64bit murmurhash2. Assuming that that different
commands get the same hash only by chance, it's is very unlikely
for two different commands to hash to the same value with a 64bit
hash.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This fix the TODO in build_log.h file.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
|
|
|
|
| |
Rather than mixing use of WIN32 and _WIN32.
|
| |
|
|
|
|
| |
spaces.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A restat rule is a rule which is capable of pruning the build tree
depending on the timestamps of its outputs before and after a build.
After a restat rule is rebuilt, Ninja will re-stat each output file
to obtain its current timestamp. If the timestamp is unchanged from
when Ninja initially stat'ed the file before starting the build,
Ninja will mark that output file as clean, and recursively for each
reverse dependency of the output file, recompute its dirty status.
Ninja then stores the most recent timestamp of any input file in the
build log entry associated with the output file. This timestamp
will be treated by future invocations of Ninja as the output file's
modification time instead of the output file's actual modification
time for the purpose of deciding whether it is dirty (but not whether
its reverse dependencies are dirty).
|
| |
|
| |
|
|
|
|
|
|
| |
Use chsize instead of truncate for mingw compatibility
SubprocessTest uses DoWork to force Subprocesses to execute
Drop GoodCommandStdOut test as it is tested in SetWithSingle
|
|
|
|
|
| |
All tests except SubProcess pass on a native Windows build
Tests continue not to build on a platform=mingw build
|
|
|
|
|
| |
Add a test that tries all truncations of a log file and verifies it
doesn't crash.
|
|
|
|
|
| |
In v2 we store both the start and end time of the command.
This allows better visualization of the build process.
|
|
|
|
|
| |
It links, with some hacks.
Tests still fail.
|
| |
|
| |
|
| |
|
| |
|
|
|