mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-29 15:52:07 +00:00
Backout changeset aad04db89c38 (bug 1229245) for jetpack bustage. r=me on a CLOSED TREE
This commit is contained in:
parent
70e723fc78
commit
6bea47c16d
@ -57,6 +57,7 @@ from ..frontend.data import (
|
||||
InstallationTarget,
|
||||
JARManifest,
|
||||
JavaJarData,
|
||||
JavaScriptModules,
|
||||
Library,
|
||||
LocalInclude,
|
||||
PerSourceFlag,
|
||||
@ -561,6 +562,9 @@ class RecursiveMakeBackend(CommonBackend):
|
||||
elif isinstance(obj, InstallationTarget):
|
||||
self._process_installation_target(obj, backend_file)
|
||||
|
||||
elif isinstance(obj, JavaScriptModules):
|
||||
self._process_javascript_modules(obj, backend_file)
|
||||
|
||||
elif isinstance(obj, ContextWrapped):
|
||||
# Process a rich build system object from the front-end
|
||||
# as-is. Please follow precedent and handle CamelCaseData
|
||||
@ -1023,6 +1027,18 @@ INSTALL_TARGETS += %(prefix)s
|
||||
if not obj.enabled:
|
||||
backend_file.write('NO_DIST_INSTALL := 1\n')
|
||||
|
||||
def _process_javascript_modules(self, obj, backend_file):
|
||||
if obj.flavor != 'testing':
|
||||
raise Exception('Unsupported JavaScriptModules instance: %s' % obj.flavor)
|
||||
|
||||
if not self.environment.substs.get('ENABLE_TESTS', False):
|
||||
return
|
||||
|
||||
manifest = self._install_manifests['tests']
|
||||
|
||||
for source, dest, _ in self._walk_hierarchy(obj, obj.modules):
|
||||
manifest.add_symlink(source, mozpath.join('modules', dest))
|
||||
|
||||
def _handle_idl_manager(self, manager):
|
||||
build_files = self._install_manifests['xpidl']
|
||||
|
||||
|
@ -1001,10 +1001,16 @@ VARIABLES = {
|
||||
"""Like ``FINAL_TARGET_FILES``, with preprocessing.
|
||||
""", 'libs'),
|
||||
|
||||
'TESTING_FILES': (HierarchicalStringList, list,
|
||||
"""List of files to be installed in the _tests directory.
|
||||
'TESTING_JS_MODULES': (HierarchicalStringList, list,
|
||||
"""JavaScript modules to install in the test-only destination.
|
||||
|
||||
This works similarly to FINAL_TARGET_FILES.
|
||||
Some JavaScript modules (JSMs) are test-only and not distributed
|
||||
with Firefox. This variable defines them.
|
||||
|
||||
To install modules in a subdirectory, use properties of this
|
||||
variable to control the final destination. e.g.
|
||||
|
||||
``TESTING_JS_MODULES.foo += ['module.jsm']``.
|
||||
""", None),
|
||||
|
||||
'FINAL_LIBRARY': (unicode, unicode,
|
||||
@ -1968,18 +1974,6 @@ SPECIAL_VARIABLES = {
|
||||
``$(FINAL_TARGET)/modules``, after preprocessing.
|
||||
"""),
|
||||
|
||||
'TESTING_JS_MODULES': (lambda context: context['TESTING_FILES'].modules, list,
|
||||
"""JavaScript modules to install in the test-only destination.
|
||||
|
||||
Some JavaScript modules (JSMs) are test-only and not distributed
|
||||
with Firefox. This variable defines them.
|
||||
|
||||
To install modules in a subdirectory, use properties of this
|
||||
variable to control the final destination. e.g.
|
||||
|
||||
``TESTING_JS_MODULES.foo += ['module.jsm']``.
|
||||
"""),
|
||||
|
||||
}
|
||||
|
||||
# Deprecation hints.
|
||||
|
@ -652,6 +652,21 @@ class JARManifest(ContextDerived):
|
||||
self.path = path
|
||||
|
||||
|
||||
class JavaScriptModules(ContextDerived):
|
||||
"""Describes a JavaScript module."""
|
||||
|
||||
__slots__ = (
|
||||
'modules',
|
||||
'flavor',
|
||||
)
|
||||
|
||||
def __init__(self, context, modules, flavor):
|
||||
super(JavaScriptModules, self).__init__(context)
|
||||
|
||||
self.modules = modules
|
||||
self.flavor = flavor
|
||||
|
||||
|
||||
class ContextWrapped(ContextDerived):
|
||||
"""Generic context derived container object for a wrapped rich object.
|
||||
|
||||
@ -826,12 +841,6 @@ class FinalTargetPreprocessedFiles(ContextDerived):
|
||||
self.files = files
|
||||
|
||||
|
||||
class TestingFiles(FinalTargetFiles):
|
||||
@property
|
||||
def install_target(self):
|
||||
return '_tests'
|
||||
|
||||
|
||||
class GeneratedFile(ContextDerived):
|
||||
"""Represents a generated file."""
|
||||
|
||||
|
@ -53,6 +53,7 @@ from .data import (
|
||||
InstallationTarget,
|
||||
IPDLFile,
|
||||
JARManifest,
|
||||
JavaScriptModules,
|
||||
Library,
|
||||
Linkable,
|
||||
LinkageWrongKindError,
|
||||
@ -66,7 +67,6 @@ from .data import (
|
||||
Sources,
|
||||
StaticLibrary,
|
||||
TestHarnessFiles,
|
||||
TestingFiles,
|
||||
TestWebIDLFile,
|
||||
TestManifest,
|
||||
UnifiedSources,
|
||||
@ -629,6 +629,10 @@ class TreeMetadataEmitter(LoggingMixin):
|
||||
|
||||
self._handle_programs(context)
|
||||
|
||||
test_js_modules = context.get('TESTING_JS_MODULES')
|
||||
if test_js_modules:
|
||||
yield JavaScriptModules(context, test_js_modules, 'testing')
|
||||
|
||||
simple_lists = [
|
||||
('GENERATED_EVENTS_WEBIDL_FILES', GeneratedEventWebIDLFile),
|
||||
('GENERATED_WEBIDL_FILES', GeneratedWebIDLFile),
|
||||
@ -655,12 +659,11 @@ class TreeMetadataEmitter(LoggingMixin):
|
||||
for var, cls in (
|
||||
('FINAL_TARGET_FILES', FinalTargetFiles),
|
||||
('FINAL_TARGET_PP_FILES', FinalTargetPreprocessedFiles),
|
||||
('TESTING_FILES', TestingFiles),
|
||||
):
|
||||
all_files = context.get(var)
|
||||
if not all_files:
|
||||
continue
|
||||
if dist_install is False and var != 'TESTING_FILES':
|
||||
if dist_install is False:
|
||||
raise SandboxValidationError(
|
||||
'%s cannot be used with DIST_INSTALL = False' % var,
|
||||
context)
|
||||
|
Loading…
Reference in New Issue
Block a user