mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1062221 - Replace add_tier_dir with DIRS. r=gps
This commit is contained in:
parent
b3bcf32644
commit
5f3bfd0ece
@ -6,10 +6,12 @@
|
||||
if not CONFIG['LIBXUL_SDK']:
|
||||
include('/toolkit/toolkit.mozbuild')
|
||||
elif CONFIG['ENABLE_TESTS']:
|
||||
add_tier_dir('testharness', 'testing/mochitest')
|
||||
DIRS += ['testing/mochitest']
|
||||
|
||||
if CONFIG['MOZ_EXTENSIONS']:
|
||||
add_tier_dir('app', 'extensions')
|
||||
DIRS += ['extensions']
|
||||
|
||||
add_tier_dir('app', CONFIG['MOZ_BRANDING_DIRECTORY'])
|
||||
add_tier_dir('app', 'b2g')
|
||||
DIRS += [
|
||||
CONFIG['MOZ_BRANDING_DIRECTORY'],
|
||||
'b2g',
|
||||
]
|
||||
|
@ -7,19 +7,19 @@ if not CONFIG['LIBXUL_SDK']:
|
||||
include('/toolkit/toolkit.mozbuild')
|
||||
|
||||
if CONFIG['MOZ_EXTENSIONS']:
|
||||
add_tier_dir('app', 'extensions')
|
||||
DIRS += ['extensions']
|
||||
|
||||
add_tier_dir('app', [CONFIG['MOZ_BRANDING_DIRECTORY']])
|
||||
DIRS += [CONFIG['MOZ_BRANDING_DIRECTORY']]
|
||||
|
||||
if CONFIG['MOZ_WEBAPP_RUNTIME']:
|
||||
add_tier_dir('app', 'webapprt')
|
||||
DIRS += ['webapprt']
|
||||
|
||||
add_tier_dir('app', 'b2g/chrome')
|
||||
add_tier_dir('app', 'b2g/components')
|
||||
|
||||
add_tier_dir('app', 'b2g/dev/app')
|
||||
|
||||
# Never add tier dirs after browser because they apparently won't get
|
||||
# packaged properly on Mac.
|
||||
add_tier_dir('app', 'browser')
|
||||
DIRS += [
|
||||
'b2g/chrome',
|
||||
'b2g/components',
|
||||
'b2g/dev/app',
|
||||
|
||||
# Never add dirs after browser because they apparently won't get
|
||||
# packaged properly on Mac.
|
||||
'browser',
|
||||
]
|
||||
|
@ -7,14 +7,14 @@ if not CONFIG['LIBXUL_SDK']:
|
||||
include('/toolkit/toolkit.mozbuild')
|
||||
|
||||
if CONFIG['MOZ_EXTENSIONS']:
|
||||
add_tier_dir('app', 'extensions')
|
||||
DIRS += ['extensions']
|
||||
|
||||
add_tier_dir('app', [CONFIG['MOZ_BRANDING_DIRECTORY']])
|
||||
DIRS += [CONFIG['MOZ_BRANDING_DIRECTORY']]
|
||||
|
||||
if CONFIG['MOZ_WEBAPP_RUNTIME']:
|
||||
add_tier_dir('app', 'webapprt')
|
||||
DIRS += ['webapprt']
|
||||
|
||||
# Never add tier dirs after browser because they apparently won't get
|
||||
# Never add dirs after browser because they apparently won't get
|
||||
# packaged properly on Mac.
|
||||
add_tier_dir('app', 'browser')
|
||||
DIRS += ['browser']
|
||||
|
||||
|
@ -101,7 +101,6 @@ _MOZBUILD_EXTERNAL_VARIABLES := \
|
||||
SONAME \
|
||||
STATIC_LIBRARY_NAME \
|
||||
TEST_DIRS \
|
||||
TIERS \
|
||||
TOOL_DIRS \
|
||||
XPCSHELL_TESTS \
|
||||
XPIDL_MODULE \
|
||||
@ -124,6 +123,7 @@ _DEPRECATED_VARIABLES := \
|
||||
SHORT_LIBNAME \
|
||||
TESTING_JS_MODULES \
|
||||
TESTING_JS_MODULE_DIR \
|
||||
TIERS \
|
||||
$(NULL)
|
||||
|
||||
# Freeze the values specified by moz.build to catch them if they fail.
|
||||
|
@ -25,12 +25,6 @@ endef
|
||||
echo-variable-%:
|
||||
@echo $(call shell_quote,$($*))
|
||||
|
||||
echo-tiers:
|
||||
@echo $(TIERS)
|
||||
|
||||
echo-tier-dirs:
|
||||
@$(foreach tier,$(TIERS),echo '$(tier):'; echo ' dirs: $(tier_$(tier)_dirs)')
|
||||
|
||||
echo-dirs:
|
||||
@echo $(call shell_quote,$(DIRS))
|
||||
|
||||
|
@ -30,12 +30,6 @@ ifeq (.,$(DEPTH))
|
||||
|
||||
include root.mk
|
||||
|
||||
# Disable build status for mach in top directories without TIERS.
|
||||
# In practice this disables it when recursing under js/src, which confuses mach.
|
||||
ifndef TIERS
|
||||
BUILDSTATUS =
|
||||
endif
|
||||
|
||||
# Main rules (export, compile, libs and tools) call recurse_* rules.
|
||||
# This wrapping is only really useful for build status.
|
||||
compile libs export tools::
|
||||
@ -70,9 +64,7 @@ export NO_RECURSE_MAKELEVEL=$(word $(MAKELEVEL),2 3 4 5 6 7 8 9 10 11 12 13 14 1
|
||||
endif
|
||||
endif
|
||||
|
||||
# Get all directories traversed for all subtiers in the current tier, or use
|
||||
# directly the $(*_dirs) variables available in root.mk when there is no
|
||||
# TIERS (like for js/src).
|
||||
# Use the $(*_dirs) variables available in root.mk
|
||||
CURRENT_DIRS := $($(CURRENT_TIER)_dirs)
|
||||
|
||||
# Need a list of compile targets because we can't use pattern rules:
|
||||
@ -123,16 +115,6 @@ else
|
||||
# Tier traversal handling
|
||||
#########################
|
||||
|
||||
ifdef TIERS
|
||||
|
||||
libs export tools::
|
||||
$(call BUILDSTATUS,TIER_START $@)
|
||||
$(foreach tier,$(TIERS), $(if $(filter-out libs_precompile tools_precompile,$@_$(tier)), \
|
||||
$(foreach dir, $(tier_$(tier)_dirs), $(call TIER_DIR_SUBMAKE,$@,$(tier),$(dir),$@))))
|
||||
$(call BUILDSTATUS,TIER_FINISH $@)
|
||||
|
||||
else
|
||||
|
||||
define CREATE_SUBTIER_TRAVERSAL_RULE
|
||||
.PHONY: $(1)
|
||||
|
||||
@ -147,8 +129,6 @@ ifndef TOPLEVEL_BUILD
|
||||
libs:: target host
|
||||
endif
|
||||
|
||||
endif # ifdef TIERS
|
||||
|
||||
endif # ifeq ($(NO_RECURSE_MAKELEVEL),$(MAKELEVEL))
|
||||
|
||||
endif # ifeq (.,$(DEPTH))
|
||||
|
@ -648,15 +648,8 @@ clean clobber realclean clobber_all::
|
||||
-$(RM) $(ALL_TRASH)
|
||||
-$(RM) -r $(ALL_TRASH_DIRS)
|
||||
|
||||
ifdef TIERS
|
||||
clean clobber realclean clobber_all distclean::
|
||||
$(foreach dir, \
|
||||
$(foreach tier, $(TIERS), $(tier_$(tier)_dirs)), \
|
||||
-$(call SUBMAKE,$@,$(dir)))
|
||||
else
|
||||
clean clobber realclean clobber_all distclean::
|
||||
$(foreach dir,$(DIRS),-$(call SUBMAKE,$@,$(dir)))
|
||||
endif
|
||||
|
||||
distclean::
|
||||
-$(RM) -r $(ALL_TRASH_DIRS)
|
||||
@ -1636,7 +1629,6 @@ FREEZE_VARIABLES = \
|
||||
DIRS \
|
||||
LIBRARY \
|
||||
MODULE \
|
||||
TIERS \
|
||||
EXTRA_COMPONENTS \
|
||||
EXTRA_PP_COMPONENTS \
|
||||
$(NULL)
|
||||
|
@ -7,13 +7,15 @@ if not CONFIG['LIBXUL_SDK']:
|
||||
include('/toolkit/toolkit.mozbuild')
|
||||
|
||||
elif CONFIG['ENABLE_TESTS']:
|
||||
add_tier_dir('testharness', 'testing/mochitest')
|
||||
DIRS += ['testing/mochitest']
|
||||
|
||||
if CONFIG['ENABLE_TESTS']:
|
||||
add_tier_dir('testharness', 'testing/instrumentation')
|
||||
DIRS += ['testing/instrumentation']
|
||||
|
||||
if CONFIG['MOZ_EXTENSIONS']:
|
||||
add_tier_dir('app', 'extensions')
|
||||
DIRS += ['extensions']
|
||||
|
||||
add_tier_dir('app', CONFIG['MOZ_BRANDING_DIRECTORY'])
|
||||
add_tier_dir('app', 'mobile/android')
|
||||
DIRS += [
|
||||
CONFIG['MOZ_BRANDING_DIRECTORY'],
|
||||
'mobile/android',
|
||||
]
|
||||
|
46
moz.build
46
moz.build
@ -10,47 +10,59 @@ CONFIGURE_SUBST_FILES += [
|
||||
]
|
||||
|
||||
if CONFIG['ENABLE_CLANG_PLUGIN']:
|
||||
add_tier_dir('base', 'build/clang-plugin')
|
||||
DIRS += ['build/clang-plugin']
|
||||
|
||||
DIRS += [
|
||||
'config',
|
||||
'python',
|
||||
]
|
||||
|
||||
add_tier_dir('base', ['config', 'python'])
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
CONFIGURE_SUBST_FILES += [
|
||||
'mozilla-config.h',
|
||||
'tools/update-packaging/Makefile',
|
||||
]
|
||||
|
||||
add_tier_dir('base', ['build', 'probes'])
|
||||
DIRS += [
|
||||
'build',
|
||||
'probes',
|
||||
]
|
||||
|
||||
if not CONFIG['LIBXUL_SDK']:
|
||||
add_tier_dir('base', ['mfbt'])
|
||||
|
||||
add_tier_dir('base', ['config/external/zlib'])
|
||||
DIRS += [
|
||||
'mfbt',
|
||||
'config/external/zlib',
|
||||
]
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
||||
add_tier_dir('base', ['other-licenses/android'])
|
||||
DIRS += ['other-licenses/android']
|
||||
|
||||
if CONFIG['MOZ_MEMORY']:
|
||||
add_tier_dir('base', ['memory'])
|
||||
|
||||
add_tier_dir('base', ['mozglue', 'memory/mozalloc'])
|
||||
DIRS += ['memory']
|
||||
|
||||
DIRS += [
|
||||
'mozglue',
|
||||
'memory/mozalloc',
|
||||
]
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
add_tier_dir('precompile', 'xpcom/xpidl')
|
||||
DIRS += ['xpcom/xpidl']
|
||||
|
||||
if CONFIG['COMPILE_ENVIRONMENT'] and not CONFIG['LIBXUL_SDK']:
|
||||
add_tier_dir('nspr', 'config/external/nspr')
|
||||
DIRS += ['config/external/nspr']
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
add_tier_dir('external', 'config/external')
|
||||
add_tier_dir('nss', 'config/external/nss')
|
||||
DIRS += [
|
||||
'config/external',
|
||||
'config/external/nss',
|
||||
]
|
||||
|
||||
if CONFIG['BUILD_CTYPES']:
|
||||
add_tier_dir('js', ['config/external/ffi'])
|
||||
DIRS += ['config/external/ffi']
|
||||
if CONFIG['ENABLE_INTL_API']:
|
||||
add_tier_dir('js', ['config/external/icu'])
|
||||
add_tier_dir('js', ['js/src'])
|
||||
DIRS += ['config/external/icu']
|
||||
DIRS += ['js/src']
|
||||
|
||||
if not CONFIG['JS_STANDALONE']:
|
||||
# Bring in the configuration for the configured application.
|
||||
|
@ -791,23 +791,6 @@ class RecursiveMakeBackend(CommonBackend):
|
||||
return [mozpath.normpath(mozpath.join(backend_file.relobjdir, d))
|
||||
for d in dirs]
|
||||
|
||||
for tier, dirs in obj.tier_dirs.iteritems():
|
||||
fh.write('TIERS += %s\n' % tier)
|
||||
# For pseudo derecursification, subtiers are treated as pseudo
|
||||
# directories, with a special hierarchy:
|
||||
# - subtier1 + dirA - dirAA
|
||||
# | | + dirAB
|
||||
# | ...
|
||||
# | + dirB
|
||||
# + subtier2 ...
|
||||
if dirs:
|
||||
fh.write('tier_%s_dirs += %s\n' % (tier, ' '.join(dirs)))
|
||||
fh.write('DIRS += $(tier_%s_dirs)\n' % tier)
|
||||
self._traversal.add('subtiers/%s' % tier,
|
||||
dirs=relativize(dirs))
|
||||
|
||||
self._traversal.add('', dirs=['subtiers/%s' % tier])
|
||||
|
||||
if obj.dirs:
|
||||
fh.write('DIRS := %s\n' % ' '.join(obj.dirs))
|
||||
self._traversal.add(backend_file.relobjdir, dirs=relativize(obj.dirs))
|
||||
|
@ -646,24 +646,6 @@ VARIABLES = {
|
||||
complete.
|
||||
""", None),
|
||||
|
||||
'TIERS': (OrderedDict, dict,
|
||||
"""Defines directories constituting the tier traversal mechanism.
|
||||
|
||||
The recursive make backend iteration is organized into tiers. There are
|
||||
major tiers (keys in this dict) that correspond roughly to applications
|
||||
or libraries being built. e.g. base, nspr, js, platform, app. Within
|
||||
each tier are phases like export, libs, and tools. The recursive make
|
||||
backend iterates over each phase in the first tier then proceeds to the
|
||||
next tier until all tiers are exhausted.
|
||||
|
||||
Tiers are a way of working around deficiencies in recursive make. These
|
||||
will probably disappear once we no longer rely on recursive make for
|
||||
the build backend. They will likely be replaced by ``DIRS``.
|
||||
|
||||
This variable is typically not populated directly. Instead, it is
|
||||
populated by calling add_tier_dir().
|
||||
""", None),
|
||||
|
||||
'CONFIGURE_SUBST_FILES': (StrictOrderingOnAppendList, list,
|
||||
"""Output files that will be generated using configure-like substitution.
|
||||
|
||||
@ -1115,43 +1097,6 @@ FUNCTIONS = {
|
||||
:py:class:`mozbuild.frontend.data.AndroidEclipseProjectData`.
|
||||
"""),
|
||||
|
||||
'add_tier_dir': (
|
||||
lambda self: self._add_tier_directory,
|
||||
(str, [str, list], bool, bool, str),
|
||||
"""Register a directory for tier traversal.
|
||||
|
||||
This is the preferred way to populate the TIERS variable.
|
||||
|
||||
Tiers are how the build system is organized. The build process is
|
||||
divided into major phases called tiers. The most important tiers are
|
||||
"platform" and "apps." The platform tier builds the Gecko platform
|
||||
(typically outputting libxul). The apps tier builds the configured
|
||||
application (browser, mobile/android, b2g, etc).
|
||||
|
||||
This function is typically only called by the main moz.build file or a
|
||||
file directly included by the main moz.build file. An error will be
|
||||
raised if it is called when it shouldn't be.
|
||||
|
||||
An error will also occur if you attempt to add the same directory to
|
||||
the same tier multiple times.
|
||||
|
||||
Example usage
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
Register a single directory with the 'platform' tier::
|
||||
|
||||
add_tier_dir('platform', 'xul')
|
||||
|
||||
Register multiple directories with the 'app' tier.::
|
||||
|
||||
add_tier_dir('app', ['components', 'base'])
|
||||
|
||||
Register a directory as having external content (no dependencies,
|
||||
and traversed with export, libs, and tools subtiers::
|
||||
|
||||
add_tier_dir('base', 'bar', external=True)
|
||||
"""),
|
||||
|
||||
'export': (lambda self: self._export, (str,),
|
||||
"""Make the specified variable available to all child directories.
|
||||
|
||||
|
@ -103,7 +103,6 @@ class DirectoryTraversal(ContextDerived):
|
||||
__slots__ = (
|
||||
'dirs',
|
||||
'test_dirs',
|
||||
'tier_dirs',
|
||||
)
|
||||
|
||||
def __init__(self, context):
|
||||
@ -111,7 +110,6 @@ class DirectoryTraversal(ContextDerived):
|
||||
|
||||
self.dirs = []
|
||||
self.test_dirs = []
|
||||
self.tier_dirs = OrderedDict()
|
||||
|
||||
|
||||
class BaseConfigSubstitution(ContextDerived):
|
||||
|
@ -1018,9 +1018,4 @@ class TreeMetadataEmitter(LoggingMixin):
|
||||
# shouldn't end up in self._external_paths.
|
||||
self._external_paths -= { o.relobjdir }
|
||||
|
||||
if 'TIERS' in context:
|
||||
for tier in context['TIERS']:
|
||||
o.tier_dirs[tier] = context['TIERS'][tier]['regular'] + \
|
||||
context['TIERS'][tier]['external']
|
||||
|
||||
yield o
|
||||
|
@ -250,25 +250,6 @@ class MozbuildSandbox(Sandbox):
|
||||
data.is_library = True
|
||||
return data
|
||||
|
||||
def _add_tier_directory(self, tier, reldir, external=False):
|
||||
"""Register a tier directory with the build."""
|
||||
if isinstance(reldir, text_type):
|
||||
reldir = [reldir]
|
||||
|
||||
if not tier in self['TIERS']:
|
||||
self['TIERS'][tier] = {
|
||||
'regular': [],
|
||||
'external': [],
|
||||
}
|
||||
|
||||
key = 'external' if external else 'regular'
|
||||
for path in reldir:
|
||||
if path in self['TIERS'][tier][key]:
|
||||
raise Exception('Directory has already been registered with '
|
||||
'tier: %s' % path)
|
||||
|
||||
self['TIERS'][tier][key].append(path)
|
||||
|
||||
def _export(self, varname):
|
||||
"""Export the variable to all subdirectories of the current path."""
|
||||
|
||||
@ -974,28 +955,7 @@ class BuildReader(object):
|
||||
sandbox.recompute_exports()
|
||||
recurse_info[d]['exports'] = dict(sandbox.metadata['exports'])
|
||||
|
||||
# We also have tiers whose members are directories.
|
||||
if 'TIERS' in context:
|
||||
if not read_tiers:
|
||||
raise SandboxValidationError(
|
||||
'TIERS defined but it should not be', context)
|
||||
|
||||
for tier, values in context['TIERS'].items():
|
||||
# We don't descend into external directories because external by
|
||||
# definition is external to the build system.
|
||||
for d in values['regular']:
|
||||
if d in recurse_info:
|
||||
raise SandboxValidationError(
|
||||
'Tier directory (%s) registered multiple '
|
||||
'times in %s' % (d, tier), context)
|
||||
recurse_info[d] = {'check_external': True}
|
||||
if 'templates' in sandbox.metadata:
|
||||
recurse_info[d]['templates'] = dict(
|
||||
sandbox.metadata['templates'])
|
||||
|
||||
for relpath, child_metadata in recurse_info.items():
|
||||
if 'check_external' in child_metadata:
|
||||
relpath = '/' + relpath
|
||||
child_path = sandbox.normalize_path(mozpath.join(relpath,
|
||||
'moz.build'), srcdir=curdir)
|
||||
|
||||
|
@ -2,6 +2,6 @@
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
add_tier_dir('libs', ['dir1'])
|
||||
DIRS += ['dir1']
|
||||
|
||||
Library('test')
|
||||
|
@ -1,5 +0,0 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
add_tier_dir('illegal', 'IRRELEVANT')
|
@ -1,5 +0,0 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
DIRS = ['foo']
|
@ -1,5 +0,0 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
DIRS = ['biz']
|
@ -1,9 +0,0 @@
|
||||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# Any copyright is dedicated to the Public Domain.
|
||||
# http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
add_tier_dir('t1', 'foo')
|
||||
add_tier_dir('t1', 'foo_static')
|
||||
|
||||
add_tier_dir('t2', 'bar')
|
||||
add_tier_dir('t3', 'baz')
|
@ -91,7 +91,6 @@ class TestEmitterBasic(unittest.TestCase):
|
||||
for o in objs:
|
||||
self.assertIsInstance(o, DirectoryTraversal)
|
||||
self.assertEqual(o.test_dirs, [])
|
||||
self.assertEqual(len(o.tier_dirs), 0)
|
||||
self.assertTrue(os.path.isabs(o.context_main_path))
|
||||
self.assertEqual(len(o.context_all_paths), 1)
|
||||
|
||||
@ -119,15 +118,6 @@ class TestEmitterBasic(unittest.TestCase):
|
||||
self.assertEqual(o.dirs, ['regular'])
|
||||
self.assertEqual(o.test_dirs, ['test'])
|
||||
|
||||
def test_tier_simple(self):
|
||||
reader = self.reader('traversal-tier-simple')
|
||||
objs = self.read_topsrcdir(reader, filter_common=False)
|
||||
self.assertEqual(len(objs), 6)
|
||||
|
||||
reldirs = [o.relativedir for o in objs]
|
||||
self.assertEqual(reldirs, ['', 'foo', 'foo/biz', 'foo_static', 'bar',
|
||||
'baz'])
|
||||
|
||||
def test_config_file_substitution(self):
|
||||
reader = self.reader('config-file-substitution')
|
||||
objs = self.read_topsrcdir(reader)
|
||||
|
@ -68,13 +68,6 @@ class TestBuildReader(unittest.TestCase):
|
||||
contexts = list(reader.read_topsrcdir())
|
||||
self.assertEqual(len(contexts), 3)
|
||||
|
||||
def test_tier_subdir(self):
|
||||
# add_tier_dir() should fail when not in the top directory.
|
||||
reader = self.reader('traversal-tier-fails-in-subdir')
|
||||
|
||||
with self.assertRaises(Exception):
|
||||
list(reader.read_topsrcdir())
|
||||
|
||||
def test_relative_dirs(self):
|
||||
# Ensure relative directories are traversed.
|
||||
reader = self.reader('traversal-relative-dirs')
|
||||
|
@ -212,53 +212,6 @@ class TestMozbuildSandbox(unittest.TestCase):
|
||||
self.assertEqual(e.args[1], 'reassign')
|
||||
self.assertEqual(e.args[2], 'DIST_SUBDIR')
|
||||
|
||||
def test_add_tier_dir_regular_str(self):
|
||||
sandbox = self.sandbox()
|
||||
|
||||
sandbox.exec_source('add_tier_dir("t1", "foo")')
|
||||
|
||||
self.assertEqual(sandbox['TIERS']['t1'],
|
||||
{'regular': ['foo'], 'external': []})
|
||||
|
||||
def test_add_tier_dir_regular_list(self):
|
||||
sandbox = self.sandbox()
|
||||
|
||||
sandbox.exec_source('add_tier_dir("t1", ["foo", "bar"])')
|
||||
|
||||
self.assertEqual(sandbox['TIERS']['t1'],
|
||||
{'regular': ['foo', 'bar'], 'external': []})
|
||||
|
||||
def test_add_tier_dir_external(self):
|
||||
sandbox = self.sandbox()
|
||||
|
||||
sandbox.exec_source('add_tier_dir("t1", "foo", external=True)')
|
||||
|
||||
self.assertEqual(sandbox['TIERS']['t1'],
|
||||
{'regular': [], 'external': ['foo']})
|
||||
|
||||
def test_tier_order(self):
|
||||
sandbox = self.sandbox()
|
||||
|
||||
source = '''
|
||||
add_tier_dir('t1', 'foo')
|
||||
add_tier_dir('t1', 'bar')
|
||||
add_tier_dir('t2', 'baz')
|
||||
add_tier_dir('t3', 'biz')
|
||||
add_tier_dir('t1', 'bat')
|
||||
'''
|
||||
|
||||
sandbox.exec_source(source)
|
||||
|
||||
self.assertEqual([k for k in sandbox['TIERS'].keys()], ['t1', 't2', 't3'])
|
||||
|
||||
def test_tier_multiple_registration(self):
|
||||
sandbox = self.sandbox()
|
||||
|
||||
sandbox.exec_source('add_tier_dir("t1", "foo")')
|
||||
|
||||
with self.assertRaises(SandboxExecutionError):
|
||||
sandbox.exec_source('add_tier_dir("t1", "foo")')
|
||||
|
||||
def test_include_basic(self):
|
||||
sandbox = self.sandbox(data_path='include-basic')
|
||||
|
||||
|
@ -7,66 +7,73 @@ if CONFIG['LIBXUL_SDK']:
|
||||
error('toolkit.mozbuild is not compatible with --enable-libxul-sdk=')
|
||||
|
||||
if CONFIG['MOZ_SANDBOX']:
|
||||
add_tier_dir('sandbox', 'security/sandbox')
|
||||
DIRS += ['security/sandbox']
|
||||
|
||||
# Depends on NSS and NSPR, and must be built after sandbox or else B2G emulator
|
||||
# builds fail.
|
||||
add_tier_dir('platform', 'security/certverifier')
|
||||
|
||||
# Depends on certverifier
|
||||
add_tier_dir('platform', 'security/apps')
|
||||
DIRS += [
|
||||
# Depends on NSS and NSPR, and must be built after sandbox or else B2G emulator
|
||||
# builds fail.
|
||||
'security/certverifier',
|
||||
# Depends on certverifier
|
||||
'security/apps',
|
||||
]
|
||||
|
||||
# the signing related bits of libmar depend on nss
|
||||
if CONFIG['MOZ_UPDATER']:
|
||||
add_tier_dir('platform', 'modules/libmar')
|
||||
DIRS += ['modules/libmar']
|
||||
|
||||
if CONFIG['NS_TRACE_MALLOC']:
|
||||
add_tier_dir('platform', 'tools/trace-malloc/lib')
|
||||
DIRS += ['tools/trace-malloc/lib']
|
||||
|
||||
if CONFIG['MOZ_DMD']:
|
||||
add_tier_dir('platform', 'memory/replace/dmd')
|
||||
DIRS += ['memory/replace/dmd']
|
||||
|
||||
add_tier_dir('platform', 'config/external/freetype2')
|
||||
|
||||
add_tier_dir('platform', 'xpcom')
|
||||
|
||||
add_tier_dir('platform', [
|
||||
DIRS += [
|
||||
'config/external/freetype2',
|
||||
'xpcom',
|
||||
'modules/libpref',
|
||||
'intl',
|
||||
'netwerk',
|
||||
])
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_AUTH_EXTENSION']:
|
||||
add_tier_dir('platform', 'extensions/auth')
|
||||
DIRS += ['extensions/auth']
|
||||
|
||||
if CONFIG['MOZ_UPDATER']:
|
||||
add_tier_dir('platform', 'other-licenses/bsdiff')
|
||||
DIRS += ['other-licenses/bsdiff']
|
||||
|
||||
# Gecko/Core components.
|
||||
|
||||
add_tier_dir('platform', ['ipc', 'js/ipc'])
|
||||
|
||||
add_tier_dir('platform', ['hal', 'js/xpconnect', 'intl/chardet'])
|
||||
|
||||
add_tier_dir('platform', 'media/libyuv')
|
||||
|
||||
add_tier_dir('platform', ['modules/libjar', 'storage'])
|
||||
DIRS += [
|
||||
'ipc',
|
||||
'js/ipc',
|
||||
'hal',
|
||||
'js/xpconnect',
|
||||
'intl/chardet',
|
||||
'media/libyuv',
|
||||
'modules/libjar',
|
||||
'storage',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_PERMISSIONS']:
|
||||
add_tier_dir('platform', ['extensions/cookie', 'extensions/permissions'])
|
||||
DIRS += [
|
||||
'extensions/cookie',
|
||||
'extensions/permissions',
|
||||
]
|
||||
|
||||
add_tier_dir('platform', 'rdf')
|
||||
DIRS += [
|
||||
'rdf',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WEBRTC']:
|
||||
add_tier_dir('platform', [
|
||||
DIRS += [
|
||||
'media/webrtc',
|
||||
'media/mtransport/third_party',
|
||||
'media/mtransport/build',
|
||||
'media/mtransport/standalone',
|
||||
])
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_OMX_PLUGIN']:
|
||||
add_tier_dir('platform', [
|
||||
DIRS += [
|
||||
'media/omx-plugin/lib/ics/libutils',
|
||||
'media/omx-plugin/lib/ics/libstagefright',
|
||||
'media/omx-plugin/lib/ics/libvideoeditorplayer',
|
||||
@ -80,14 +87,13 @@ if CONFIG['MOZ_OMX_PLUGIN']:
|
||||
'media/omx-plugin/lib/hc/libstagefright',
|
||||
'media/omx-plugin/hc',
|
||||
'media/omx-plugin/kk',
|
||||
])
|
||||
]
|
||||
|
||||
if CONFIG['ENABLE_TESTS']:
|
||||
add_tier_dir('platform', 'testing/specialpowers')
|
||||
DIRS += ['testing/specialpowers']
|
||||
|
||||
add_tier_dir('platform', 'testing/gtest')
|
||||
|
||||
add_tier_dir('platform', [
|
||||
DIRS += [
|
||||
'testing/gtest',
|
||||
'uriloader',
|
||||
'caps',
|
||||
'parser',
|
||||
@ -102,80 +108,87 @@ add_tier_dir('platform', [
|
||||
'docshell',
|
||||
'embedding',
|
||||
'xpfe/appshell'
|
||||
])
|
||||
]
|
||||
|
||||
# This needs to be built after the gfx/ directory
|
||||
# to ensure all dependencies for skia (e.g. mozalloc, xpcom)
|
||||
# have been built
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
|
||||
add_tier_dir('platform', 'other-licenses/skia-npapi')
|
||||
DIRS += ['other-licenses/skia-npapi']
|
||||
|
||||
if CONFIG['MOZ_UNIVERSALCHARDET']:
|
||||
add_tier_dir('platform', 'extensions/universalchardet')
|
||||
DIRS += ['extensions/universalchardet']
|
||||
|
||||
if CONFIG['ACCESSIBILITY']:
|
||||
add_tier_dir('platform', 'accessible')
|
||||
DIRS += ['accessible']
|
||||
|
||||
# toolkit
|
||||
|
||||
add_tier_dir('platform', 'profile')
|
||||
DIRS += ['profile']
|
||||
|
||||
# This must precede xpfe.
|
||||
if CONFIG['MOZ_JPROF']:
|
||||
add_tier_dir('platform', 'tools/jprof')
|
||||
DIRS += ['tools/jprof']
|
||||
|
||||
add_tier_dir('platform', 'tools/profiler')
|
||||
|
||||
add_tier_dir('platform', 'xpfe/components')
|
||||
DIRS += [
|
||||
'tools/profiler',
|
||||
'xpfe/components',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_ENABLE_XREMOTE']:
|
||||
add_tier_dir('platform', 'widget/xremoteclient')
|
||||
DIRS += ['widget/xremoteclient']
|
||||
|
||||
if CONFIG['MOZ_SPELLCHECK']:
|
||||
add_tier_dir('platform', 'extensions/spellcheck')
|
||||
DIRS += ['extensions/spellcheck']
|
||||
|
||||
add_tier_dir('platform', 'security/manager')
|
||||
|
||||
add_tier_dir('platform', 'toolkit')
|
||||
DIRS += [
|
||||
'security/manager',
|
||||
'toolkit',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_PREF_EXTENSIONS']:
|
||||
add_tier_dir('platform', 'extensions/pref')
|
||||
DIRS += ['extensions/pref']
|
||||
|
||||
add_tier_dir('platform', 'services')
|
||||
add_tier_dir('platform', 'startupcache')
|
||||
add_tier_dir('platform', 'js/ductwork/debugger')
|
||||
add_tier_dir('platform', 'other-licenses/snappy')
|
||||
DIRS += [
|
||||
'services',
|
||||
'startupcache',
|
||||
'js/ductwork/debugger',
|
||||
'other-licenses/snappy',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_GIO_COMPONENT']:
|
||||
add_tier_dir('platform', 'extensions/gio')
|
||||
DIRS += ['extensions/gio']
|
||||
|
||||
add_tier_dir('platform', 'toolkit/library/StaticXULComponentsEnd')
|
||||
add_tier_dir('platform', 'toolkit/library')
|
||||
DIRS += [
|
||||
'toolkit/library/StaticXULComponentsEnd',
|
||||
'toolkit/library',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_REPLACE_MALLOC']:
|
||||
add_tier_dir('platform', 'memory/replace')
|
||||
DIRS += ['memory/replace']
|
||||
|
||||
if CONFIG['NS_TRACE_MALLOC']:
|
||||
add_tier_dir('platform', 'tools/trace-malloc')
|
||||
DIRS += ['tools/trace-malloc']
|
||||
|
||||
if CONFIG['MOZ_ENABLE_GNOME_COMPONENT']:
|
||||
add_tier_dir('platform', 'toolkit/system/gnome')
|
||||
DIRS += ['toolkit/system/gnome']
|
||||
|
||||
# if QtNetwork is present, it will do its own network monitoring
|
||||
if not CONFIG['MOZ_ENABLE_QTNETWORK'] and CONFIG['MOZ_ENABLE_DBUS']:
|
||||
add_tier_dir('platform', 'toolkit/system/dbus')
|
||||
DIRS += ['toolkit/system/dbus']
|
||||
|
||||
add_tier_dir('platform', 'addon-sdk')
|
||||
DIRS += ['addon-sdk']
|
||||
|
||||
if CONFIG['ENABLE_MARIONETTE'] or CONFIG['MOZ_WIDGET_TOOLKIT'] not in ('gonk', 'android'):
|
||||
add_tier_dir('platform', 'testing/marionette')
|
||||
DIRS += ['testing/marionette']
|
||||
|
||||
add_tier_dir('platform', 'tools/quitter')
|
||||
|
||||
add_tier_dir('platform', 'media/gmp-clearkey/0.1')
|
||||
DIRS += [
|
||||
'tools/quitter',
|
||||
'media/gmp-clearkey/0.1',
|
||||
]
|
||||
|
||||
if CONFIG['ENABLE_TESTS']:
|
||||
add_tier_dir('platform', [
|
||||
DIRS += [
|
||||
'testing/mochitest',
|
||||
'testing/xpcshell',
|
||||
'testing/tools/screenshot',
|
||||
@ -183,10 +196,10 @@ if CONFIG['ENABLE_TESTS']:
|
||||
'testing/mozbase',
|
||||
'testing/modules',
|
||||
'testing/web-platform',
|
||||
])
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WEBRTC'] and CONFIG['MOZ_WIDGET_TOOLKIT'] != 'gonk':
|
||||
add_tier_dir('platform', [
|
||||
DIRS += [
|
||||
'media/webrtc/signaling/test',
|
||||
'media/mtransport/test',
|
||||
])
|
||||
]
|
||||
|
@ -3,8 +3,8 @@
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
add_tier_dir('app', [
|
||||
DIRS += [
|
||||
'modules/libbz2',
|
||||
'modules/libmar',
|
||||
'other-licenses/bsdiff',
|
||||
])
|
||||
]
|
||||
|
@ -6,10 +6,10 @@
|
||||
include('/toolkit/toolkit.mozbuild')
|
||||
|
||||
if CONFIG['MOZ_EXTENSIONS']:
|
||||
add_tier_dir('app', 'extensions')
|
||||
DIRS += ['extensions']
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT' and (CONFIG['ENABLE_TESTS'] or
|
||||
CONFIG['MOZILLA_OFFICIAL']):
|
||||
add_tier_dir('app', 'embedding/tests/winEmbed')
|
||||
DIRS += ['embedding/tests/winEmbed']
|
||||
|
||||
add_tier_dir('app', 'xulrunner')
|
||||
DIRS += ['xulrunner']
|
||||
|
Loading…
Reference in New Issue
Block a user