summaryrefslogtreecommitdiff
path: root/tools/run_rustc.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run_rustc.py')
-rw-r--r--tools/run_rustc.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/run_rustc.py b/tools/run_rustc.py
index 81841eff9..f56ca8eb8 100644
--- a/tools/run_rustc.py
+++ b/tools/run_rustc.py
@@ -14,6 +14,9 @@ import util
# Updates the path of the main target in the depfile to the relative path
# from base_path build_output_path
def fix_depfile(depfile_path, base_path, build_output_path):
+ # It's important that the fixed-up depfile has the same mtime as before.
+ # Ninja relies on it to decide whether to rebuild the target it belongs to.
+ stat = os.stat(depfile_path)
with open(depfile_path, "r") as depfile:
content = depfile.read()
content_split = content.split(': ', 1)
@@ -21,6 +24,7 @@ def fix_depfile(depfile_path, base_path, build_output_path):
new_content = "%s: %s" % (target_path, content_split[1])
with open(depfile_path, "w") as depfile:
depfile.write(new_content)
+ os.utime(depfile_path, (stat.st_atime, stat.st_mtime))
def main():