Bug 1556185 - Ensure autoconf.mk is tracked as a dependency when preprocessing webidls. r=nalexander

webidlsrcs.mk is treated specially by the build system, and this entire
process should be supported better by moz.build, but in the meantime this
fixes the clobber bug caused by not re-building these targets when defines
are updated.

Differential Revision: https://phabricator.services.mozilla.com/D33415

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Chris Manchester 2019-06-03 20:33:36 +00:00
parent 6b4074617b
commit 399d530b9b
2 changed files with 13 additions and 1 deletions

View File

@ -6,6 +6,15 @@ webidl_base := $(topsrcdir)/dom/webidl
ifdef COMPILE_ENVIRONMENT
# Akin to GLOBAL_DEPS, but set early enough that webidlsrcs.mk
# can make use of them as dependencies.
WEBIDL_PP_DEPS := \
backend.mk \
Makefile \
$(DEPTH)/config/autoconf.mk \
$(topsrcdir)/config/config.mk \
$(NULL)
# Generated by moz.build
include webidlsrcs.mk

View File

@ -1782,7 +1782,10 @@ class RecursiveMakeBackend(CommonBackend):
for source in sorted(webidls.all_preprocessed_sources()):
basename = os.path.basename(source)
rule = mk.create_rule([basename])
rule.add_dependencies([source, '$(GLOBAL_DEPS)'])
# GLOBAL_DEPS would be used here, but due to the include order of
# our makefiles it's not set early enough to be useful, so we use
# WEBIDL_PP_DEPS, which has analagous content.
rule.add_dependencies([source, '$(WEBIDL_PP_DEPS)'])
rule.add_commands([
# Remove the file before writing so bindings that go from
# static to preprocessed don't end up writing to a symlink,