Bug 933145 - Skip directories without variables in moz.build that are relevant to compile or binaries during those tiers. r=gps

This commit is contained in:
Mike Hommey 2013-11-07 10:37:44 +09:00
parent 47f95a5be2
commit b82b5f675a

View File

@ -664,7 +664,9 @@ class RecursiveMakeBackend(CommonBackend):
# the autogenerated one automatically.
self.backend_input_files.add(makefile_in)
for skiplist in self._may_skip.values():
for tier, skiplist in self._may_skip.items():
if tier in ('compile', 'binaries'):
continue
if bf.relobjdir in skiplist:
skiplist.remove(bf.relobjdir)
else:
@ -679,8 +681,6 @@ class RecursiveMakeBackend(CommonBackend):
with self._write_file(makefile) as fh:
bf.environment.create_makefile(fh, stub=stub)
self._fill_root_mk()
# Write out a master list of all IPDL source files.
ipdl_dir = os.path.join(self.environment.topobjdir, 'ipc', 'ipdl')
mk = mozmakeutil.Makefile()
@ -711,6 +711,8 @@ class RecursiveMakeBackend(CommonBackend):
with self._write_file(os.path.join(ipdl_dir, 'ipdlsrcs.mk')) as ipdls:
mk.dump(ipdls, removal_guard=False)
self._may_skip['compile'] -= set(['ipc/ipdl'])
# Write out master lists of WebIDL source files.
bindings_dir = os.path.join(self.environment.topobjdir, 'dom', 'bindings')
@ -744,6 +746,10 @@ class RecursiveMakeBackend(CommonBackend):
with self._write_file(os.path.join(bindings_dir, 'webidlsrcs.mk')) as webidls:
mk.dump(webidls, removal_guard=False)
self._may_skip['compile'] -= set(['dom/bindings', 'dom/bindings/test'])
self._fill_root_mk()
# Write out a dependency file used to determine whether a config.status
# re-run is needed.
inputs = sorted(p.replace(os.sep, '/') for p in self.backend_input_files)
@ -868,6 +874,10 @@ class RecursiveMakeBackend(CommonBackend):
return
affected_tiers = set(obj.affected_tiers)
# Until all SOURCES are really in moz.build, consider all directories
# building binaries to require a pass at compile, too.
if 'binaries' in affected_tiers:
affected_tiers.add('compile')
if 'compile' in affected_tiers or 'binaries' in affected_tiers:
affected_tiers.add('libs')
if obj.is_tool_dir and 'libs' in affected_tiers: