Bug 1062221 - Replace add_tier_dir with DIRS. r=gps

This commit is contained in:
Mike Hommey 2014-10-02 09:14:07 +09:00
parent 29a2985c25
commit 0412683b7d
29 changed files with 149 additions and 361 deletions

View File

@ -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',
]

View File

@ -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',
]

View File

@ -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']

View File

@ -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.

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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',
]

View File

@ -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.

View File

@ -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))

View File

@ -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.

View File

@ -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):

View File

@ -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

View File

@ -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)

View File

@ -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')

View File

@ -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')

View File

@ -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']

View File

@ -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']

View File

@ -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')

View File

@ -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)

View File

@ -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')

View File

@ -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')

View File

@ -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',
])
]

View File

@ -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',
])
]

View File

@ -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']