author | Mike Shal <mshal@mozilla.com> |
Wed, 22 Nov 2017 14:14:30 -0500 | |
changeset 394695 | 6f8cc047e7e478adf76a2d7db9cc89333e8e2d1d |
parent 394694 | 3aff028846c038edd23b632702781591a670693d |
child 394696 | 126be0de348b73b16f5eda1982c61baa638175ce |
push id | 33019 |
push user | btara@mozilla.com |
push date | Mon, 04 Dec 2017 20:16:32 +0000 |
treeherder | mozilla-central@4a003542df78 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | nalexander |
bugs | 1417658 |
milestone | 59.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/python/mozbuild/mozbuild/backend/recursivemake.py +++ b/python/mozbuild/mozbuild/backend/recursivemake.py @@ -515,26 +515,17 @@ class RecursiveMakeBackend(CommonBackend else: backend_file.write('%s := %s\n' % (k, v)) elif isinstance(obj, HostDefines): self._process_defines(obj, backend_file, which='HOST_DEFINES') elif isinstance(obj, Defines): self._process_defines(obj, backend_file) elif isinstance(obj, GeneratedFile): - export_suffixes = ( - '.c', - '.cpp', - '.h', - '.inc', - '.py', - '.rs', - 'new', # 'new' is an output from make-stl-wrappers.py - ) - tier = 'export' if any(f.endswith(export_suffixes) for f in obj.outputs) else 'misc' + tier = 'export' if obj.required_for_compile else 'misc' self._no_skip[tier].add(backend_file.relobjdir) first_output = obj.outputs[0] dep_file = "%s.pp" % first_output # If we're doing this during export that means we need it during # compile, but if we have an artifact build we don't run compile, # so we can skip it altogether or let the rule run as the result of # something depending on it.
--- a/python/mozbuild/mozbuild/backend/tup.py +++ b/python/mozbuild/mozbuild/backend/tup.py @@ -328,21 +328,16 @@ class TupOnly(CommonBackend, PartialBack def _process_generated_file(self, backend_file, obj): # TODO: These are directories that don't work in the tup backend # yet, because things they depend on aren't built yet. skip_directories = ( 'layout/style/test', # HostSimplePrograms 'toolkit/library', # libxul.so ) - install_exts = ( - '.h', - '.inc', - 'new', # 'new' is an output from make-stl-wrappers.py - ) if obj.script and obj.method and obj.relobjdir not in skip_directories: backend_file.export_shell() cmd = self._py_action('file_generate') cmd.extend([ obj.script, obj.method, obj.outputs[0], '%s.pp' % obj.outputs[0], # deps file required @@ -350,17 +345,17 @@ class TupOnly(CommonBackend, PartialBack full_inputs = [f.full_path for f in obj.inputs] cmd.extend(full_inputs) cmd.extend(shell_quote(f) for f in obj.flags) outputs = [] outputs.extend(obj.outputs) outputs.append('%s.pp' % obj.outputs[0]) - extra_outputs = [self._installed_files] if any(f.endswith(install_exts) for f in obj.outputs) else None + extra_outputs = [self._installed_files] if obj.required_for_compile else None backend_file.rule( display='python {script}:{method} -> [%o]'.format(script=obj.script, method=obj.method), cmd=cmd, inputs=full_inputs, outputs=outputs, extra_outputs=extra_outputs, )
--- a/python/mozbuild/mozbuild/frontend/data.py +++ b/python/mozbuild/mozbuild/frontend/data.py @@ -1051,26 +1051,38 @@ class GeneratedFile(ContextDerived): """Represents a generated file.""" __slots__ = ( 'script', 'method', 'outputs', 'inputs', 'flags', + 'required_for_compile', ) def __init__(self, context, script, method, outputs, inputs, flags=()): ContextDerived.__init__(self, context) self.script = script self.method = method self.outputs = outputs if isinstance(outputs, tuple) else (outputs,) self.inputs = inputs self.flags = flags + suffixes = ( + '.c', + '.cpp', + '.h', + '.inc', + '.py', + '.rs', + 'new', # 'new' is an output from make-stl-wrappers.py + ) + self.required_for_compile = any(f.endswith(suffixes) for f in self.outputs) + class AndroidResDirs(ContextDerived): """Represents Android resource directories.""" __slots__ = ( 'paths', )