From ba813dd0dd4696930898c3487533874eb7734eec Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 11 Jun 2020 09:07:38 +0200 Subject: [PATCH] tools: prevent js2c from running if nothing changed This commit updates tools/js2c.py to touch the target output file , <(SHARED_INTERMEDIATE_DIR)/node_javascript.cc, even if the content has not changed. This is to "help" the build system so that it can compare the inputs against the output to determine if the gyp action should be run. I believe the issue here is that if js2c.py is updated this can cause the action to be run as the node_javascript.cc target would be older than js2c.py. But when the target is run the timestamp for node_javascript.cc will not be updated (because we have not changed anything that would change the contents of the file) so the js2c.py prerequisite will always be passed and the target always run. Using the update in this commit one would have to touch/modify one of the js files specified in the library_files list, config.gypi, or tools/js2c.py for this action to be run again. PR-URL: https://github.com/nodejs/node/pull/33844 Reviewed-By: Richard Lau Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig --- tools/js2c.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/js2c.py b/tools/js2c.py index 4594694a2cab0d..195e6a6189a989 100755 --- a/tools/js2c.py +++ b/tools/js2c.py @@ -178,6 +178,7 @@ def write_if_chaged(content, target): else: old_content = '' if old_content == content: + os.utime(target, None) return with open(target, "wt") as output: output.write(content)