diff options
author | Colin Cross <ccross@android.com> | 2017-05-19 00:34:51 (GMT) |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2017-05-22 18:29:06 (GMT) |
commit | 04d886b11041bb59d01df794cce7a1e8cad2250d (patch) | |
tree | e56630542064e75e205e85bd97dfd4f6fc693bcd /src/build_log.h | |
parent | a127dda3ee92916ef459b3da7aa9f2920ff1a5ab (diff) | |
download | Ninja-04d886b11041bb59d01df794cce7a1e8cad2250d.zip Ninja-04d886b11041bb59d01df794cce7a1e8cad2250d.tar.gz Ninja-04d886b11041bb59d01df794cce7a1e8cad2250d.tar.bz2 |
Always rebuild on errors
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.
Diffstat (limited to 'src/build_log.h')
-rw-r--r-- | src/build_log.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/build_log.h b/src/build_log.h index 785961e..5268fab 100644 --- a/src/build_log.h +++ b/src/build_log.h @@ -45,7 +45,7 @@ struct BuildLog { bool OpenForWrite(const string& path, const BuildLogUser& user, string* err); bool RecordCommand(Edge* edge, int start_time, int end_time, - TimeStamp restat_mtime = 0); + TimeStamp mtime = 0); void Close(); /// Load the on-disk log. @@ -56,7 +56,7 @@ struct BuildLog { uint64_t command_hash; int start_time; int end_time; - TimeStamp restat_mtime; + TimeStamp mtime; static uint64_t HashCommand(StringPiece command); @@ -64,7 +64,7 @@ struct BuildLog { bool operator==(const LogEntry& o) { return output == o.output && command_hash == o.command_hash && start_time == o.start_time && end_time == o.end_time && - restat_mtime == o.restat_mtime; + mtime == o.mtime; } explicit LogEntry(const string& output); |