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 <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
pull/33380/head
Daniel Bevenius 2020-06-11 09:07:38 +02:00
parent aa40bad230
commit f645cc7318
1 changed files with 1 additions and 0 deletions

View File

@ -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)