--- a/build/docs/defining-binaries.rst
+++ b/build/docs/defining-binaries.rst
@@ -333,16 +333,13 @@ templates exists to ease defining such p
essentially the same as the above mentioned templates, prefixed with "Gecko":
- ``GeckoProgram``
- ``GeckoSimplePrograms``
- ``GeckoCppUnitTests``
- ``GeckoSharedLibrary``
- ``GeckoFramework``
-There is also ``XPCOMBinaryComponent`` for XPCOM components, which is a
-special kind of library.
-
All the Gecko-prefixed templates take the same arguments as their
non-Gecko-prefixed counterparts, and can take a few more arguments
for non-standard cases. See the definition of ``GeckoBinary`` in
build/gecko_templates.mozbuild for more details, but most usecases
should not require these additional arguments.
--- a/build/gecko_templates.mozbuild
+++ b/build/gecko_templates.mozbuild
@@ -143,19 +143,8 @@ def GeckoFramework(name, **kwargs):
`name` identifies the library base name.
See the documentation for `GeckoBinary` for other possible arguments.
'''
Framework(name)
kwargs.setdefault('mozglue', 'library')
GeckoBinary(**kwargs)
-
-
-@template
-def XPCOMBinaryComponent(name):
- '''Template defining an XPCOM binary component for Gecko.
-
- `name` is the name of the component.
- '''
- GeckoSharedLibrary(name)
-
- IS_COMPONENT = True
deleted file mode 100644
--- a/build/unix/gnu-ld-scripts/components-export-list
+++ /dev/null
@@ -1,1 +0,0 @@
-_NSModule
deleted file mode 100644
--- a/build/unix/gnu-ld-scripts/components-version-script
+++ /dev/null
@@ -1,7 +0,0 @@
-EXPORTED {
- global:
- NSModule;
- NSGetModule;
- __RLD_MAP;
- local: *;
-};
--- a/config/makefiles/target_binaries.mk
+++ b/config/makefiles/target_binaries.mk
@@ -9,28 +9,20 @@ ifndef NO_DIST_INSTALL
ifneq (,$(strip $(PROGRAM)$(SIMPLE_PROGRAMS)$(RUST_PROGRAMS)))
PROGRAMS_EXECUTABLES = $(SIMPLE_PROGRAMS) $(PROGRAM) $(RUST_PROGRAMS)
PROGRAMS_DEST ?= $(FINAL_TARGET)
PROGRAMS_TARGET := target
INSTALL_TARGETS += PROGRAMS
endif
-ifdef LIBRARY
-ifdef DIST_INSTALL
-ifdef IS_COMPONENT
-$(error Shipping static component libs makes no sense.)
-endif
-endif # DIST_INSTALL
-endif # LIBRARY
-
ifdef SHARED_LIBRARY
SHARED_LIBRARY_FILES = $(SHARED_LIBRARY)
-SHARED_LIBRARY_DEST ?= $(FINAL_TARGET)$(if $(IS_COMPONENT),/components)
+SHARED_LIBRARY_DEST ?= $(FINAL_TARGET)
SHARED_LIBRARY_TARGET = target
INSTALL_TARGETS += SHARED_LIBRARY
endif # SHARED_LIBRARY
ifneq (,$(strip $(HOST_SIMPLE_PROGRAMS)$(HOST_PROGRAM)))
HOST_PROGRAMS_EXECUTABLES = $(HOST_SIMPLE_PROGRAMS) $(HOST_PROGRAM) $(HOST_RUST_PROGRAMS)
HOST_PROGRAMS_DEST ?= $(DIST)/host/bin
HOST_PROGRAMS_TARGET = host
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -324,105 +324,43 @@ TAG_PROGRAM = xargs etags -a
# (moved this from config.mk so that config.mk can be included
# before the CPPSRCS are defined)
#
ifneq ($(HOST_CPPSRCS)$(HOST_CMMSRCS),)
HOST_CPP_PROG_LINK = 1
endif
#
-# This will strip out symbols that the component should not be
-# exporting from the .dynsym section.
-#
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += $(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
-endif # IS_COMPONENT
-
-#
# MacOS X specific stuff
#
ifeq ($(OS_ARCH),Darwin)
ifdef SHARED_LIBRARY
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -bundle
-else
ifdef MOZ_IOS
_LOADER_PATH := @rpath
else
_LOADER_PATH := @executable_path
endif
EXTRA_DSO_LDOPTS += -dynamiclib -install_name $(_LOADER_PATH)/$(SHARED_LIBRARY) -compatibility_version 1 -current_version 1 -single_module
endif
endif
-endif
-
-#
-# On NetBSD a.out systems, use -Bsymbolic. This fixes what would otherwise be
-# fatal symbol name clashes between components.
-#
-ifeq ($(OS_ARCH),NetBSD)
-ifeq ($(DLL_SUFFIX),.so.1.0)
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-endif
-endif
-endif
-
-ifeq ($(OS_ARCH),FreeBSD)
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-endif
-endif
ifeq ($(OS_ARCH),NetBSD)
ifneq (,$(filter arc cobalt hpcmips mipsco newsmips pmax sgimips,$(OS_TEST)))
ifneq (,$(filter layout/%,$(relativesrcdir)))
OS_CFLAGS += -Wa,-xgot
OS_CXXFLAGS += -Wa,-xgot
endif
endif
endif
#
-# HP-UXBeOS specific section: for COMPONENTS only, add -Bsymbolic flag
-# which uses internal symbols first
-#
-ifeq ($(OS_ARCH),HP-UX)
-ifdef IS_COMPONENT
-ifeq ($(GNU_CC)$(GNU_CXX),)
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-ifneq ($(HAS_EXTRAEXPORTS),1)
-MKSHLIB += -Wl,+eNSGetModule -Wl,+eerrno
-MKCSHLIB += +eNSGetModule +eerrno
-ifneq ($(OS_TEST),ia64)
-MKSHLIB += -Wl,+e_shlInit
-MKCSHLIB += +e_shlInit
-endif # !ia64
-endif # !HAS_EXTRAEXPORTS
-endif # non-gnu compilers
-endif # IS_COMPONENT
-endif # HP-UX
-
-ifeq ($(OS_ARCH),AIX)
-ifdef IS_COMPONENT
-ifneq ($(HAS_EXTRAEXPORTS),1)
-MKSHLIB += -bE:$(MOZILLA_DIR)/build/unix/aix.exp -bnoexpall
-MKCSHLIB += -bE:$(MOZILLA_DIR)/build/unix/aix.exp -bnoexpall
-endif # HAS_EXTRAEXPORTS
-endif # IS_COMPONENT
-endif # AIX
-
-#
# Linux: add -Bsymbolic flag for components
#
ifeq ($(OS_ARCH),Linux)
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-endif
ifdef LD_VERSION_SCRIPT
EXTRA_DSO_LDOPTS += -Wl,--version-script,$(LD_VERSION_SCRIPT)
EXTRA_DEPS += $(LD_VERSION_SCRIPT)
endif
endif
ifdef SYMBOLS_FILE
ifeq ($(OS_TARGET),WINNT)
@@ -450,21 +388,19 @@ ifeq ($(OS_ARCH),GNU)
OS_CPPFLAGS += -DPATH_MAX=1024 -DMAXPATHLEN=1024
endif
#
# MINGW32
#
ifeq ($(OS_ARCH),WINNT)
ifdef GNU_CC
-ifndef IS_COMPONENT
DSO_LDOPTS += -Wl,--out-implib -Wl,$(IMPORT_LIBRARY)
endif
endif
-endif
ifeq ($(USE_TVFS),1)
IFLAGS1 = -rb
IFLAGS2 = -rb
else
IFLAGS1 = -m 644
IFLAGS2 = -m 755
endif
--- a/old-configure.in
+++ b/old-configure.in
@@ -1211,34 +1211,16 @@ if test -n "$MOZ_LINKER"; then
MOZ_LINKER_EXTRACT=1
AC_CHECK_PROGS(XZ, xz)
fi
dnl Only one oddball right now (QNX), but this gives us flexibility
dnl if any other platforms need to override this in the future.
AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
-dnl ========================================================
-dnl = Flags to strip unused symbols from .so components and
-dnl = to export jemalloc symbols when linking a program
-dnl ========================================================
-case "$target" in
- *-linux*|*-kfreebsd*-gnu|*-gnu*)
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- ;;
- *-darwin*)
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
- ;;
- *-mingw*)
- if test -n "$GNU_CC"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
- fi
- ;;
-esac
-
if test -z "$COMPILE_ENVIRONMENT"; then
SKIP_COMPILER_CHECKS=1
SKIP_LIBRARY_CHECKS=1
PKG_SKIP_STRIP=1
MOZ_DEBUGGING_OPTS
else
MOZ_COMPILER_OPTS
fi # COMPILE_ENVIRONMENT
@@ -4892,21 +4874,16 @@ MOZ_ARG_DISABLE_BOOL(cookies,
NECKO_COOKIES=1)
AC_SUBST(NECKO_COOKIES)
if test "$NECKO_COOKIES"; then
AC_DEFINE(NECKO_COOKIES)
_NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_COOKIES"
fi
dnl ========================================================
-if test "$MOZ_DEBUG" -o "$MOZ_DMD"; then
- MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
-fi
-
-dnl ========================================================
dnl =
dnl = Maintainer debug option (no --enable equivalent)
dnl =
dnl ========================================================
AC_SUBST(AR)
AC_SUBST(AR_FLAGS)
AC_SUBST(AR_EXTRACT)
@@ -4951,17 +4928,16 @@ AC_SUBST(MOZ_ANDROID_APPLICATION_CLASS)
AC_SUBST(MOZ_ANDROID_BROWSER_INTENT_CLASS)
AC_SUBST(MOZ_ANDROID_SEARCH_INTENT_CLASS)
AC_SUBST(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
AC_SUBST(ENABLE_STRIP)
AC_SUBST(PKG_SKIP_STRIP)
AC_SUBST(STRIP_FLAGS)
AC_SUBST(USE_ELF_HACK)
AC_SUBST(INCREMENTAL_LINKER)
-AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
AC_SUBST(MOZ_FIX_LINK_PATHS)
AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
AC_SUBST(MOZ_LINKER_EXTRACT)
if test -n "$MOZ_BINARY_EXTENSIONS"; then
AC_DEFINE(MOZ_BINARY_EXTENSIONS)
--- a/python/mozbuild/mozbuild/backend/recursivemake.py
+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
@@ -105,17 +105,16 @@ MOZBUILD_VARIABLES = [
b'HOST_CFLAGS',
b'HOST_CSRCS',
b'HOST_CMMSRCS',
b'HOST_CXXFLAGS',
b'HOST_EXTRA_LIBS',
b'HOST_LIBRARY_NAME',
b'HOST_PROGRAM',
b'HOST_SIMPLE_PROGRAMS',
- b'IS_COMPONENT',
b'JAR_MANIFEST',
b'JAVA_JAR_TARGETS',
b'LD_VERSION_SCRIPT',
b'LIBRARY_NAME',
b'LIBS',
b'MAKE_FRAMEWORK',
b'MODULE',
b'NO_DIST_INSTALL',
@@ -1210,18 +1209,16 @@ class RecursiveMakeBackend(CommonBackend
backend_file.write('%s_JAVAC_FLAGS := %s\n' %
(target, ' '.join(jar.javac_flags)))
def _process_shared_library(self, libdef, backend_file):
backend_file.write_once('LIBRARY_NAME := %s\n' % libdef.basename)
backend_file.write('FORCE_SHARED_LIB := 1\n')
backend_file.write('IMPORT_LIBRARY := %s\n' % libdef.import_name)
backend_file.write('SHARED_LIBRARY := %s\n' % libdef.lib_name)
- if libdef.variant == libdef.COMPONENT:
- backend_file.write('IS_COMPONENT := 1\n')
if libdef.soname:
backend_file.write('DSO_SONAME := %s\n' % libdef.soname)
if libdef.symbols_file:
backend_file.write('SYMBOLS_FILE := %s\n' % libdef.symbols_file)
if not libdef.cxx_link:
backend_file.write('LIB_IS_C_ONLY := 1\n')
def _process_static_library(self, libdef, backend_file):
@@ -1281,26 +1278,24 @@ class RecursiveMakeBackend(CommonBackend
# linkage for any RustLibrary elsewhere.
continue
elif isinstance(lib, StaticLibrary):
backend_file.write_once('STATIC_LIBS += %s/%s\n'
% (relpath, lib.import_name))
if isinstance(obj, SharedLibrary):
write_shared_and_system_libs(lib)
elif isinstance(obj, SharedLibrary):
- assert lib.variant != lib.COMPONENT
backend_file.write_once('SHARED_LIBS += %s/%s\n'
% (relpath, lib.import_name))
elif isinstance(obj, (Program, SimpleProgram)):
if isinstance(lib, StaticLibrary):
backend_file.write_once('STATIC_LIBS += %s/%s\n'
% (relpath, lib.import_name))
write_shared_and_system_libs(lib)
else:
- assert lib.variant != lib.COMPONENT
backend_file.write_once('SHARED_LIBS += %s/%s\n'
% (relpath, lib.import_name))
elif isinstance(obj, (HostLibrary, HostProgram, HostSimpleProgram)):
assert isinstance(lib, (HostLibrary, HostRustLibrary))
backend_file.write_once('HOST_LIBS += %s/%s\n'
% (relpath, lib.import_name))
# We have to link any Rust libraries after all intermediate static
--- a/python/mozbuild/mozbuild/frontend/context.py
+++ b/python/mozbuild/mozbuild/frontend/context.py
@@ -1164,22 +1164,16 @@ VARIABLES = {
'HOST_SOURCES': (ContextDerivedTypedList(SourcePath, StrictOrderingOnAppendList), list,
"""Source code files to compile with the host compiler.
This variable contains a list of source code files to compile.
with the host compiler.
"""),
- 'IS_COMPONENT': (bool, bool,
- """Whether the library contains a binary XPCOM component manifest.
-
- Implies FORCE_SHARED_LIB.
- """),
-
'HOST_LIBRARY_NAME': (unicode, unicode,
"""Name of target library generated when cross compiling.
"""),
'JAVA_JAR_TARGETS': (dict, dict,
"""Defines Java JAR targets to be built.
This variable should not be populated directly. Instead, it should
@@ -1831,17 +1825,16 @@ for name, (storage_type, input_types, do
# Set of variables that are only allowed in templates:
TEMPLATE_VARIABLES = {
'CPP_UNIT_TESTS',
'FORCE_SHARED_LIB',
'HOST_PROGRAM',
'HOST_LIBRARY_NAME',
'HOST_SIMPLE_PROGRAMS',
- 'IS_COMPONENT',
'IS_FRAMEWORK',
'LIBRARY_NAME',
'PROGRAM',
'SIMPLE_PROGRAMS',
}
# Add a note to template variable documentation.
for name in TEMPLATE_VARIABLES:
@@ -2208,27 +2201,16 @@ DEPRECATION_HINTS = {
SharedLibrary('foo')
instead of
Library('foo') [ or LIBRARY_NAME = 'foo' ]
FORCE_SHARED_LIB = True
''',
- 'IS_COMPONENT': '''
- Please use
-
- XPCOMBinaryComponent('foo')
-
- instead of
-
- Library('foo') [ or LIBRARY_NAME = 'foo' ]
- IS_COMPONENT = True
- ''',
-
'IS_FRAMEWORK': '''
Please use
Framework('foo')
instead of
Library('foo') [ or LIBRARY_NAME = 'foo' ]
--- a/python/mozbuild/mozbuild/frontend/data.py
+++ b/python/mozbuild/mozbuild/frontend/data.py
@@ -327,19 +327,16 @@ class Linkable(ContextDerived):
ContextDerived.__init__(self, context)
self.cxx_link = False
self.linked_libraries = []
self.linked_system_libs = []
self.lib_defines = Defines(context, {})
def link_library(self, obj):
assert isinstance(obj, BaseLibrary)
- if isinstance(obj, SharedLibrary) and obj.variant == obj.COMPONENT:
- raise LinkageWrongKindError(
- 'Linkable.link_library() does not take components.')
if obj.KIND != self.KIND:
raise LinkageWrongKindError('%s != %s' % (obj.KIND, self.KIND))
# Linking multiple Rust libraries into an object would result in
# multiple copies of the Rust standard library, as well as linking
# errors from duplicate symbols.
if isinstance(obj, RustLibrary) and any(isinstance(l, RustLibrary)
for l in self.linked_libraries):
raise LinkageMultipleRustLibrariesError("Cannot link multiple Rust libraries into %s",
@@ -571,18 +568,17 @@ class SharedLibrary(Library):
'import_name',
'install_target',
'lib_name',
'relobjdir',
'soname',
}
FRAMEWORK = 1
- COMPONENT = 2
- MAX_VARIANT = 3
+ MAX_VARIANT = 2
def __init__(self, context, basename, real_name=None,
soname=None, variant=None, symbols_file=False):
assert(variant in range(1, self.MAX_VARIANT) or variant is None)
Library.__init__(self, context, basename, real_name)
self.variant = variant
self.lib_name = real_name or basename
assert self.lib_name
--- a/python/mozbuild/mozbuild/frontend/emitter.py
+++ b/python/mozbuild/mozbuild/frontend/emitter.py
@@ -73,17 +73,16 @@ from .data import (
TestWebIDLFile,
TestManifest,
UnifiedSources,
VariablePassthru,
WebIDLFile,
XPIDLFile,
)
from mozpack.chrome.manifest import (
- ManifestBinaryComponent,
Manifest,
)
from .reader import SandboxValidationError
from ..testing import (
TEST_MANIFESTS,
REFTEST_FLAVORS,
@@ -603,17 +602,16 @@ class TreeMetadataEmitter(LoggingMixin):
static_lib = context.get('FORCE_STATIC_LIB')
shared_lib = context.get('FORCE_SHARED_LIB')
static_name = context.get('STATIC_LIBRARY_NAME')
shared_name = context.get('SHARED_LIBRARY_NAME')
is_framework = context.get('IS_FRAMEWORK')
- is_component = context.get('IS_COMPONENT')
soname = context.get('SONAME')
lib_defines = context.get('LIBRARY_DEFINES')
shared_args = {}
static_args = {}
@@ -625,32 +623,20 @@ class TreeMetadataEmitter(LoggingMixin):
if shared_lib:
raise SandboxValidationError(
'FINAL_LIBRARY conflicts with FORCE_SHARED_LIB. '
'Please remove one.', context)
if is_framework:
raise SandboxValidationError(
'FINAL_LIBRARY conflicts with IS_FRAMEWORK. '
'Please remove one.', context)
- if is_component:
- raise SandboxValidationError(
- 'FINAL_LIBRARY conflicts with IS_COMPONENT. '
- 'Please remove one.', context)
static_args['link_into'] = final_lib
static_lib = True
if libname:
- if is_component:
- if static_lib:
- raise SandboxValidationError(
- 'IS_COMPONENT conflicts with FORCE_STATIC_LIB. '
- 'Please remove one.', context)
- shared_lib = True
- shared_args['variant'] = SharedLibrary.COMPONENT
-
if is_framework:
if soname:
raise SandboxValidationError(
'IS_FRAMEWORK conflicts with SONAME. '
'Please remove one.', context)
shared_lib = True
shared_args['variant'] = SharedLibrary.FRAMEWORK
@@ -737,20 +723,16 @@ class TreeMetadataEmitter(LoggingMixin):
shared_args['symbols_file'] = symbols_file.target_basename
if shared_lib:
lib = SharedLibrary(context, libname, **shared_args)
self._libs[libname].append(lib)
self._linkage.append((context, lib, 'USE_LIBS'))
linkables.append(lib)
generated_files.add(lib.lib_name)
- if is_component and not context['NO_COMPONENTS_MANIFEST']:
- yield ChromeManifestEntry(context,
- 'components/components.manifest',
- ManifestBinaryComponent('components', lib.lib_name))
if symbols_file and isinstance(symbols_file, SourcePath):
script = mozpath.join(
mozpath.dirname(mozpath.dirname(__file__)),
'action', 'generate_symbols_file.py')
defines = ()
if lib.defines:
defines = lib.defines.get_defines()
yield GeneratedFile(context, script,
deleted file mode 100644
--- a/python/mozbuild/mozbuild/test/backend/data/binary-components/bar/moz.build
+++ /dev/null
@@ -1,2 +0,0 @@
-Component('bar')
-NO_COMPONENTS_MANIFEST = True
deleted file mode 100644
--- a/python/mozbuild/mozbuild/test/backend/data/binary-components/foo/moz.build
+++ /dev/null
@@ -1,1 +0,0 @@
-Component('foo')
deleted file mode 100644
--- a/python/mozbuild/mozbuild/test/backend/data/binary-components/moz.build
+++ /dev/null
@@ -1,10 +0,0 @@
-@template
-def Component(name):
- LIBRARY_NAME = name
- FORCE_SHARED_LIB = True
- IS_COMPONENT = True
-
-DIRS += [
- 'foo',
- 'bar',
-]
--- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
+++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
@@ -933,73 +933,11 @@ class TestRecursiveMakeBackend(BackendTe
# Only mochitest.js should be in the install manifest.
self.assertTrue('testing/mochitest/tests/mochitest.js' in m)
# The path is odd here because we do not normalize at test manifest
# processing time. This is a fragile test because there's currently no
# way to iterate the manifest.
self.assertFalse('instrumentation/./not_packaged.java' in m)
- def test_binary_components(self):
- """Ensure binary components are correctly handled."""
- env = self._consume('binary-components', RecursiveMakeBackend)
-
- with open(mozpath.join(env.topobjdir, 'foo', 'backend.mk')) as fh:
- lines = fh.readlines()[2:]
-
- self.assertEqual(lines, [
- 'misc::\n',
- '\t$(call py_action,buildlist,$(DEPTH)/dist/bin/chrome.manifest '
- + "'manifest components/components.manifest')\n",
- '\t$(call py_action,buildlist,'
- + '$(DEPTH)/dist/bin/components/components.manifest '
- + "'binary-component foo')\n",
- 'LIBRARY_NAME := foo\n',
- 'FORCE_SHARED_LIB := 1\n',
- 'IMPORT_LIBRARY := foo\n',
- 'SHARED_LIBRARY := foo\n',
- 'IS_COMPONENT := 1\n',
- 'DSO_SONAME := foo\n',
- 'LIB_IS_C_ONLY := 1\n',
- ])
-
- with open(mozpath.join(env.topobjdir, 'bar', 'backend.mk')) as fh:
- lines = fh.readlines()[2:]
-
- self.assertEqual(lines, [
- 'LIBRARY_NAME := bar\n',
- 'FORCE_SHARED_LIB := 1\n',
- 'IMPORT_LIBRARY := bar\n',
- 'SHARED_LIBRARY := bar\n',
- 'IS_COMPONENT := 1\n',
- 'DSO_SONAME := bar\n',
- 'LIB_IS_C_ONLY := 1\n',
- ])
-
- self.assertTrue(os.path.exists(mozpath.join(env.topobjdir, 'binaries.json')))
- with open(mozpath.join(env.topobjdir, 'binaries.json'), 'rb') as fh:
- binaries = json.load(fh)
-
- self.assertEqual(binaries, {
- 'programs': [],
- 'shared_libraries': [
- {
- 'basename': 'foo',
- 'import_name': 'foo',
- 'install_target': 'dist/bin',
- 'lib_name': 'foo',
- 'relobjdir': 'foo',
- 'soname': 'foo',
- },
- {
- 'basename': 'bar',
- 'import_name': 'bar',
- 'install_target': 'dist/bin',
- 'lib_name': 'bar',
- 'relobjdir': 'bar',
- 'soname': 'bar',
- }
- ],
- })
-
if __name__ == '__main__':
main()
deleted file mode 100644
--- a/python/mozbuild/mozbuild/test/frontend/data/binary-components/bar/moz.build
+++ /dev/null
@@ -1,2 +0,0 @@
-Component('bar')
-NO_COMPONENTS_MANIFEST = True
deleted file mode 100644
--- a/python/mozbuild/mozbuild/test/frontend/data/binary-components/foo/moz.build
+++ /dev/null
@@ -1,1 +0,0 @@
-Component('foo')
deleted file mode 100644
--- a/python/mozbuild/mozbuild/test/frontend/data/binary-components/moz.build
+++ /dev/null
@@ -1,10 +0,0 @@
-@template
-def Component(name):
- LIBRARY_NAME = name
- FORCE_SHARED_LIB = True
- IS_COMPONENT = True
-
-DIRS += [
- 'foo',
- 'bar',
-]
--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
@@ -1163,33 +1163,16 @@ class TestEmitterBasic(unittest.TestCase
# Android resource directories are ordered.
expected = [
mozpath.join(reader.config.topsrcdir, 'dir1'),
mozpath.join(reader.config.topobjdir, 'dir2'),
'/dir3',
]
self.assertEquals([p.full_path for p in objs[0].paths], expected)
- def test_binary_components(self):
- """Test that IS_COMPONENT/NO_COMPONENTS_MANIFEST work properly."""
- reader = self.reader('binary-components')
- objs = self.read_topsrcdir(reader)
-
- self.assertEqual(len(objs), 3)
- self.assertIsInstance(objs[0], ChromeManifestEntry)
- self.assertEqual(objs[0].path,
- 'dist/bin/components/components.manifest')
- self.assertIsInstance(objs[0].entry, manifest.ManifestBinaryComponent)
- self.assertEqual(objs[0].entry.base, 'dist/bin/components')
- self.assertEqual(objs[0].entry.relpath, objs[1].lib_name)
- self.assertIsInstance(objs[1], SharedLibrary)
- self.assertEqual(objs[1].basename, 'foo')
- self.assertIsInstance(objs[2], SharedLibrary)
- self.assertEqual(objs[2].basename, 'bar')
-
def test_install_shared_lib(self):
"""Test that we can install a shared library with TEST_HARNESS_FILES"""
reader = self.reader('test-install-shared-lib')
objs = self.read_topsrcdir(reader)
self.assertIsInstance(objs[0], TestHarnessFiles)
self.assertIsInstance(objs[1], VariablePassthru)
self.assertIsInstance(objs[2], SharedLibrary)
for path, files in objs[0].files.walk():