author | Phil Ringnalda <philringnalda@gmail.com> |
Tue, 03 Sep 2013 23:21:30 -0700 | |
changeset 145392 | 28c308fbc854689e8d9a650de78bc10714875839 |
parent 145391 | b23aae5cb0c2a110006db5fbed53e0099464ec4d |
child 145393 | 3cf5058f6296272089460ffd710173a8d05abae4 |
child 145459 | 44b0383e1063e764e090865a1b2b188b47742aee |
push id | 33262 |
push user | philringnalda@gmail.com |
push date | Wed, 04 Sep 2013 06:21:45 +0000 |
treeherder | mozilla-inbound@28c308fbc854 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 896797 |
milestone | 26.0a1 |
backs out | ce03cc2994aa65f52659354c2816c14cb1ec6ac4 |
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/Makefile.in +++ b/Makefile.in @@ -57,17 +57,16 @@ ifndef MOZ_PROFILE_USE # necessary. To manage new directories or add files to the manifests, # modify the backend generator. # # We need to explicitly put backend.RecursiveMakeBackend.built here # otherwise the rule in rules.mk doesn't run early enough. default alldep all:: CLOBBER $(topsrcdir)/configure config.status backend.RecursiveMakeBackend.built $(call SUBMAKE,backend.RecursiveMakeBackend.built,js/src,1) $(call py_action,purge_manifests,-d _build_manifests/purge .) - $(call py_action,process_install_manifest,$(DIST)/include _build_manifests/install/dist_include js/src/_build_manifests/install/dist_include) endif CLOBBER: $(topsrcdir)/CLOBBER @echo "STOP! The CLOBBER file has changed." @echo "Please run the build through a sanctioned build wrapper, such as" @echo "'mach build' or client.mk." @exit 1
--- a/accessible/public/ia2/Makefile.in +++ b/accessible/public/ia2/Makefile.in @@ -62,21 +62,16 @@ MIDL_GENERATED_FILES = \ $(MIDL_INTERFACES:%.idl=%_p.c) \ $(MIDL_INTERFACES:%.idl=%_i.c) \ $(MIDL_INTERFACES:%.idl=%.h) \ $(MIDL_ENUMS:%.idl=%.h) \ $(NULL) EMBED_MANIFEST_AT = 2 -INSTALL_TARGETS += midl -midl_FILES := $(filter %.h %_i.c,$(MIDL_GENERATED_FILES)) -midl_DEST = $(DIST)/include -midl_TARGET := export - include $(topsrcdir)/config/rules.mk OS_LIBS = $(call EXPAND_LIBNAME,uuid kernel32 rpcns4 rpcrt4 ole32 oleaut32) # generate list of to-be-generated files that are missing # but ignore special file dlldata.c missing:=$(strip $(foreach onefile,$(strip $(subst dlldata.c,,$(MIDL_GENERATED_FILES))),$(if $(wildcard $(onefile)),,$(onefile))))
--- a/accessible/public/ia2/moz.build +++ b/accessible/public/ia2/moz.build @@ -1,9 +1,53 @@ # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # 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/. MODULE = 'accessibility' + +# Please keep this list in sync with the Makefile.in until the rest of that file +# is ported over. +midl_interfaces = [ + 'Accessible2', + 'Accessible2_2', + 'AccessibleAction', + 'AccessibleApplication', + 'AccessibleComponent', + 'AccessibleDocument', + 'AccessibleEditableText', + 'AccessibleHyperlink', + 'AccessibleHypertext', + 'AccessibleHypertext2', + 'AccessibleImage', + 'AccessibleRelation', + 'AccessibleTable', + 'AccessibleTable2', + 'AccessibleTableCell', + 'AccessibleText', + 'AccessibleText2', + 'AccessibleValue', +] + +# Please keep this list in sync with the Makefile.in until the rest of that file +# is ported over. +midl_enums = [ + 'AccessibleEventId', + 'AccessibleRole', + 'AccessibleStates', + 'IA2CommonTypes', +] + +headers = ['%s.h' % x for x in midl_enums] +interfaces_h = ['%s.h' % x for x in midl_interfaces] +interfaces_c = ['%s_i.c' % x for x in midl_interfaces] + +# The underscore throws off sorting and EXPORTS expects sorted lists. +interfaces_c.sort() + +EXPORTS += headers +EXPORTS += interfaces_h +EXPORTS += interfaces_c + LIBRARY_NAME = 'IA2Marshal'
--- a/accessible/public/msaa/Makefile.in +++ b/accessible/public/msaa/Makefile.in @@ -55,24 +55,10 @@ done_gen: ISimpleDOMNode.idl \ export:: done_gen # This marshall dll is also registered in the installer register:: regsvr32 -s $(DIST)/bin/$(SHARED_LIBRARY) EMBED_MANIFEST_AT = 2 -midl_exports := \ - ISimpleDOMDocument.h \ - ISimpleDOMDocument_i.c \ - ISimpleDOMNode.h \ - ISimpleDOMNode_i.c \ - ISimpleDOMText.h \ - ISimpleDOMText_i.c \ - $(NULL) - -INSTALL_TARGETS += midl_exports -midl_exports_FILES := $(midl_exports) -midl_exports_DEST = $(DIST)/include -midl_exports_TARGET := export - include $(topsrcdir)/config/rules.mk
--- a/accessible/public/msaa/moz.build +++ b/accessible/public/msaa/moz.build @@ -1,10 +1,19 @@ # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # 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/. MODULE = 'accessibility' +EXPORTS += [ + 'ISimpleDOMDocument.h', + 'ISimpleDOMDocument_i.c', + 'ISimpleDOMNode.h', + 'ISimpleDOMNode_i.c', + 'ISimpleDOMText.h', + 'ISimpleDOMText_i.c', +] + LIBRARY_NAME = 'AccessibleMarshal'
--- a/accessible/src/xpcom/Makefile.in +++ b/accessible/src/xpcom/Makefile.in @@ -6,21 +6,16 @@ DEPTH = @DEPTH@ topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk EXTRA_MDDEPEND_FILES = xpcAccEvents.pp -INSTALL_TARGETS += xpcaccevents -xpcaccevents_FILES := xpcAccEvents.h -xpcaccevents_DEST = $(DIST)/include -xpcaccevents_TARGET := export - include $(topsrcdir)/config/rules.mk LOCAL_INCLUDES = \ -I$(srcdir)/../base \ -I$(srcdir)/../generic \ $(NULL) ifdef MOZ_ENABLE_GTK
--- a/accessible/src/xpcom/moz.build +++ b/accessible/src/xpcom/moz.build @@ -1,16 +1,20 @@ # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- # vim: set filetype=python: # This Source Code Form is subject to the terms of the Mozilla Public # 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/. MODULE = 'accessibility' +EXPORTS += [ + 'xpcAccEvents.h', +] + CPP_SOURCES += [ 'nsAccessibleRelation.cpp', 'xpcAccEvents.cpp', 'xpcAccessibleTable.cpp', 'xpcAccessibleTableCell.cpp', ] LIBRARY_NAME = 'accessibility_xpcom_s'
--- a/dom/bindings/Makefile.in +++ b/dom/bindings/Makefile.in @@ -105,17 +105,16 @@ EXPORTS_GENERATED_FILES := $(exported_bi EXPORTS_GENERATED_DEST := $(DIST)/include/$(binding_include_path) EXPORTS_GENERATED_TARGET := export INSTALL_TARGETS += EXPORTS_GENERATED # Install auto-generated GlobalGen files. The rules for the install must # be in the same target/subtier as GlobalGen.py, otherwise the files will not # get installed into the appropriate location as they are generated. globalgen_headers_FILES := \ - GeneratedAtomList.h \ PrototypeList.h \ RegisterBindings.h \ UnionConversions.h \ UnionTypes.h \ $(NULL) globalgen_headers_DEST = $(DIST)/include/mozilla/dom globalgen_headers_TARGET := webidl INSTALL_TARGETS += globalgen_headers
--- a/dom/bindings/moz.build +++ b/dom/bindings/moz.build @@ -16,16 +16,17 @@ EXPORTS.mozilla.dom += [ 'BindingUtils.h', 'CallbackFunction.h', 'CallbackInterface.h', 'CallbackObject.h', 'DOMJSClass.h', 'DOMJSProxyHandler.h', 'Date.h', 'Errors.msg', + 'GeneratedAtomList.h', 'JSSlots.h', 'NonRefcountedDOMObject.h', 'Nullable.h', 'PrimitiveConversions.h', 'TypedArray.h', ] FAIL_ON_WARNINGS = True
--- a/gfx/cairo/cairo/src/Makefile.in +++ b/gfx/cairo/cairo/src/Makefile.in @@ -88,21 +88,16 @@ endif ifdef MOZ_ENABLE_CAIRO_FT CSRCS += cairo-ft-font.c cairo-type1-subset.c OS_INCLUDES += $(CAIRO_FT_CFLAGS) endif LOCAL_INCLUDES += -I$(srcdir) -INSTALL_TARGETS += cairo_features -cairo_features_FILES := cairo-features.h -cairo_features_DEST = $(DIST)/include/cairo -cairo_features_TARGET := export - include $(topsrcdir)/config/rules.mk ifdef GNU_CC # Disable spammy "missing initializer" GCC warning CFLAGS += -Wno-missing-field-initializers # Disable spammy "implicit conversion from enumeration type 'cairo_" warnings. CFLAGS += -Wno-conversion
--- a/gfx/cairo/cairo/src/moz.build +++ b/gfx/cairo/cairo/src/moz.build @@ -5,16 +5,17 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. CONFIGURE_SUBST_FILES += ['cairo-features.h'] MODULE = 'cairo' EXPORTS.cairo += [ 'cairo-deprecated.h', + 'cairo-features.h', 'cairo-platform.h', 'cairo-rename.h', 'cairo-tee.h', 'cairo-version.h', 'cairo.h', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
--- a/gfx/layers/moz.build +++ b/gfx/layers/moz.build @@ -48,18 +48,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'wind 'D3D9SurfaceImage.cpp', ] if CONFIG['MOZ_ENABLE_D3D9_LAYER']: EXPORTS += [ 'd3d9/DeviceManagerD3D9.h', 'd3d9/LayerManagerD3D9.h', ] EXPORTS.mozilla.layers += [ - 'd3d9/CompositorD3D9.h', - 'd3d9/TextureD3D9.h', + 'CompositorD3D9.h', + 'TextureD3D9.h', ] CPP_SOURCES += [ 'CompositorD3D9.cpp', 'TextureD3D9.cpp', 'LayerManagerD3D9.cpp', 'ThebesLayerD3D9.cpp', 'ContainerLayerD3D9.cpp', 'ImageLayerD3D9.cpp', @@ -95,16 +95,18 @@ EXPORTS.gfxipc += [ 'ipc/ShadowLayerUtils.h', ] EXPORTS.mozilla.layers += [ 'Compositor.h', 'CompositorTypes.h', 'D3D9SurfaceImage.h', 'Effects.h', + 'GrallocTextureClient.h', + 'GrallocTextureHost.h', 'ImageDataSerializer.h', 'LayersTypes.h', 'RenderTrace.h', 'YCbCrImageDataSerializer.h', 'basic/BasicCompositor.h', 'client/CanvasClient.h', 'client/CompositableClient.h', 'client/ContentClient.h', @@ -138,18 +140,16 @@ EXPORTS.mozilla.layers += [ 'ipc/LayerTransactionParent.h', 'ipc/ShadowLayers.h', 'ipc/ShadowLayersManager.h', 'ipc/SharedPlanarYCbCrImage.h', 'ipc/SharedRGBImage.h', 'ipc/TaskThrottler.h', 'opengl/CompositingRenderTargetOGL.h', 'opengl/CompositorOGL.h', - 'opengl/GrallocTextureClient.h', - 'opengl/GrallocTextureHost.h', 'opengl/TextureClientOGL.h', 'opengl/TextureHostOGL.h', ] if CONFIG['MOZ_X11']: EXPORTS.mozilla.layers += [ 'ipc/ShadowLayerUtilsX11.h', ]
--- a/js/src/Makefile.in +++ b/js/src/Makefile.in @@ -172,17 +172,16 @@ USE_HOST_CXX = 1 ifdef HAVE_DTRACE ifneq ($(OS_ARCH),Darwin) DTRACE_PROBE_OBJ = $(LIBRARY_NAME)-dtrace.$(OBJ_SUFFIX) endif MOZILLA_DTRACE_SRC = $(srcdir)/devtools/javascript-trace.d endif default:: - $(call py_action,process_install_manifest,$(if $(JS_STANDALONE),,--no-remove) $(DIST)/include _build_manifests/install/dist_include) ifneq (,$(CROSS_COMPILE)$(filter-out WINNT OS2,$(OS_ARCH))) # nsinstall doesn't get built until we enter config/ in the exports phase, # so we'll have to manually ensure it gets built here if we want to use # $(EXPORTS) export:: config/nsinstall$(HOST_BIN_SUFFIX) $(PUBLIC) $(SDK_PUBLIC): config/nsinstall$(HOST_BIN_SUFFIX) @@ -197,26 +196,16 @@ EXTRA_DSO_LDOPTS += -Wl,-version-script, symverscript: symverscript.in $(PYTHON) $(topsrcdir)/config/Preprocessor.py \ -DVERSION="$(subst -,_,$(LIBRARY_NAME))" $< > $@ EXTRA_DEPS += symverscript endif -export_files = js-config.h -ifdef HAVE_DTRACE -export_files += $(CURDIR)/javascript-trace.h -endif - -INSTALL_TARGETS += jsconfig -jsconfig_FILES = $(export_files) -jsconfig_DEST = $(DIST)/include -jsconfig_TARGETS := export - include $(topsrcdir)/config/rules.mk ifdef JS_HAS_CTYPES ifndef MOZ_NATIVE_FFI # Build libffi proper as part of the 'exports' target, so things get built # in the right order. export:: $(call SUBMAKE,,ctypes/libffi)
--- a/js/src/moz.build +++ b/js/src/moz.build @@ -26,16 +26,17 @@ else: LIBRARY_NAME = 'mozjs' CONFIGURE_SUBST_FILES += ['devtools/rootAnalysis/Makefile'] # Changes to internal header files, used externally, massively slow down # browser builds. Don't add new files here unless you know what you're # doing! EXPORTS += [ + 'js-config.h', 'js.msg', 'jsalloc.h', 'jsapi.h', 'jsbytecode.h', 'jsclist.h', 'jscpucfg.h', 'jsfriendapi.h', 'jsprf.h', @@ -43,16 +44,21 @@ EXPORTS += [ 'jsproxy.h', 'jspubtd.h', 'jstypes.h', 'jsversion.h', 'jswrapper.h', 'perf/jsperf.h', ] +if CONFIG['HAVE_DTRACE']: + EXPORTS += [ + '$(CURDIR)/javascript-trace.h', + ] + # If you add a header here, add it to js/src/jsapi-tests/testIntTypesABI.cpp so # that we ensure we don't over-expose our internal integer typedefs. Note that # LegacyIntTypes.h below is deliberately exempted from this requirement. EXPORTS.js += [ '../public/Anchor.h', '../public/CallArgs.h', '../public/CallNonGenericMethod.h', '../public/CharacterEncoding.h',
--- a/js/xpconnect/src/Makefile.in +++ b/js/xpconnect/src/Makefile.in @@ -35,25 +35,16 @@ endif SHARED_LIBRARY_LIBS = \ ../loader/$(LIB_PREFIX)jsloader_s.$(LIB_SUFFIX) \ ../wrappers/$(LIB_PREFIX)xpcwrappers_s.$(LIB_SUFFIX) \ $(NULL) EXTRA_MDDEPEND_FILES = dom_qsgen.pp dictionary_helper_gen.pp event_impl_gen.pp -INSTALL_TARGETS += extra_export_files -extra_export_files_FILES := \ - DictionaryHelpers.h \ - GeneratedEventClasses.h \ - GeneratedEvents.h \ - $(NULL) -extra_export_files_DEST = $(DIST)/include -extra_export_files_TARGET := export - include $(topsrcdir)/config/rules.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk DEFINES += \ -DJSFILE \ -DJS_THREADSAFE \ -DEXPORT_XPC_API \ $(NULL) @@ -151,16 +142,24 @@ GeneratedEvents-webidl: event_impl_gen.c $(PYTHON) $(topsrcdir)/config/pythonpath.py \ $(PLY_INCLUDE) \ -I$(LIBXUL_DIST)/sdk/bin \ $(srcdir)/event_impl_gen.py \ -I $(DEPTH)/dist/idl \ --webidltarget=$(top_srcdir)/dom/webidl \ event_impl_gen.conf +_EXTRA_EXPORT_FILES = \ + DictionaryHelpers.h \ + GeneratedEventClasses.h \ + $(NULL) + +libs:: $(_EXTRA_EXPORT_FILES) + $(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/dist/include + GARBAGE += \ dom_quickstubs.h \ dom_quickstubs.cpp \ DictionaryHelpers.h \ DictionaryHelpers.cpp \ GeneratedEvents.h \ GeneratedEvents.cpp \ GeneratedEventClasses.h \
--- a/js/xpconnect/src/moz.build +++ b/js/xpconnect/src/moz.build @@ -3,16 +3,17 @@ # This Source Code Form is subject to the terms of the Mozilla Public # 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/. MODULE = 'xpconnect' EXPORTS += [ 'BackstagePass.h', + 'GeneratedEvents.h', 'XPCJSMemoryReporter.h', 'nsCxPusher.h', 'qsObjectHelper.h', 'xpcObjectHelper.h', 'xpcpublic.h', ] CPP_SOURCES += [
--- a/layout/style/Makefile.in +++ b/layout/style/Makefile.in @@ -9,21 +9,16 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk ifdef GNU_CC OS_CFLAGS := $(OS_CFLAGS) -Wshadow OS_CXXFLAGS := $(OS_CXXFLAGS) -Wshadow endif -INSTALL_TARGETS += structlist -structlist_FILES := nsStyleStructList.h -structlist_DEST = $(DIST)/include -structlist_TARGET := export - include $(topsrcdir)/config/rules.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk LOCAL_INCLUDES += \ -I$(srcdir)/../base \ -I$(topsrcdir)/dom/base \ -I$(srcdir)/../generic \ -I$(srcdir)/../xul/base/src \
--- a/layout/style/moz.build +++ b/layout/style/moz.build @@ -49,16 +49,17 @@ EXPORTS += [ 'nsStyleAnimation.h', 'nsStyleConsts.h', 'nsStyleContext.h', 'nsStyleCoord.h', 'nsStyleSet.h', 'nsStyleStruct.h', 'nsStyleStructFwd.h', 'nsStyleStructInlines.h', + 'nsStyleStructList.h', 'nsStyleTransformMatrix.h', 'nsStyleUtil.h', ] EXPORTS.mozilla.dom += [ 'CSS.h', 'CSSValue.h', ]
deleted file mode 100644 --- a/netwerk/Makefile.in +++ /dev/null @@ -1,15 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# 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/. - -DEPTH := @DEPTH@ -topsrcdir := @top_srcdir@ -srcdir := @srcdir@ -VPATH := @srcdir@ - -INSTALL_TARGETS += neckoconfig -neckoconfig_FILES := necko-config.h -neckoconfig_DEST = $(DIST)/include -neckoconfig_TARGET := export - -include $(topsrcdir)/config/rules.mk
--- a/netwerk/moz.build +++ b/netwerk/moz.build @@ -30,8 +30,13 @@ PARALLEL_DIRS += ['locales'] if CONFIG['MOZ_DASH']: PARALLEL_DIRS += ['dash'] DIRS += ['build'] TEST_TOOL_DIRS += ['test'] MODULE = 'necko' + +EXPORTS += [ + 'necko-config.h', +] +
--- a/python/mozbuild/mozbuild/action/process_install_manifest.py +++ b/python/mozbuild/mozbuild/action/process_install_manifest.py @@ -8,37 +8,34 @@ import argparse from mozpack.copier import FileCopier from mozpack.manifests import InstallManifest COMPLETE = 'From {dest}: Kept {existing} existing; Added/updated {updated}; ' \ 'Removed {rm_files} files and {rm_dirs} directories.' -def process_manifest(destdir, paths, remove_unaccounted=True): +def process_manifest(destdir, *paths): manifest = InstallManifest() for path in paths: manifest |= InstallManifest(path=path) copier = FileCopier() manifest.populate_registry(copier) - return copier.copy(destdir, remove_unaccounted=remove_unaccounted) + return copier.copy(destdir) if __name__ == '__main__': parser = argparse.ArgumentParser( description='Process install manifest files.') parser.add_argument('destdir', help='Destination directory.') parser.add_argument('manifests', nargs='+', help='Path to manifest file(s).') - parser.add_argument('--no-remove', action='store_true', - help='Do not remove unaccounted files from destination.') args = parser.parse_args() - result = process_manifest(args.destdir, args.manifests, - remove_unaccounted=not args.no_remove) + result = process_manifest(args.destdir, *args.manifests) print(COMPLETE.format(dest=args.destdir, existing=result.existing_files_count, updated=result.updated_files_count, rm_files=result.removed_files_count, rm_dirs=result.removed_directories_count))
--- a/python/mozbuild/mozbuild/backend/recursivemake.py +++ b/python/mozbuild/mozbuild/backend/recursivemake.py @@ -144,28 +144,30 @@ class RecursiveMakeBackend(CommonBackend self.summary.backend_detailed_summary = types.MethodType(detailed, self.summary) self.xpcshell_manifests = [] self.backend_input_files.add(os.path.join(self.environment.topobjdir, 'config', 'autoconf.mk')) + self._install_manifests = dict() + self._purge_manifests = dict( dist_bin=PurgeManifest(relpath='dist/bin'), + dist_include=PurgeManifest(relpath='dist/include'), dist_private=PurgeManifest(relpath='dist/private'), dist_public=PurgeManifest(relpath='dist/public'), dist_sdk=PurgeManifest(relpath='dist/sdk'), tests=PurgeManifest(relpath='_tests'), xpidl=PurgeManifest(relpath='config/makefiles/xpidl'), ) self._install_manifests = dict( dist_idl=InstallManifest(), - dist_include=InstallManifest(), ) def _update_from_avoid_write(self, result): existed, updated = result if not existed: self.summary.created_count += 1 elif updated: @@ -201,17 +203,17 @@ class RecursiveMakeBackend(CommonBackend for item in v: backend_file.write('%s += %s\n' % (k, item)) elif isinstance(v, bool): if v: backend_file.write('%s := 1\n' % k) else: backend_file.write('%s := %s\n' % (k, v)) elif isinstance(obj, Exports): - self._process_exports(obj, obj.exports, backend_file) + self._process_exports(obj.exports, backend_file) elif isinstance(obj, IPDLFile): self._ipdl_sources.add(mozpath.join(obj.srcdir, obj.basename)) elif isinstance(obj, Program): self._process_program(obj.program, backend_file) elif isinstance(obj, XpcshellManifests): @@ -360,51 +362,51 @@ class RecursiveMakeBackend(CommonBackend if len(obj.external_make_dirs): fh.write('DIRS += %s\n' % ' '.join(obj.external_make_dirs)) if len(obj.parallel_external_make_dirs): fh.write('PARALLEL_DIRS += %s\n' % ' '.join(obj.parallel_external_make_dirs)) - def _process_exports(self, obj, exports, backend_file, namespace=""): - # This may not be needed, but is present for backwards compatibility - # with the old make rules, just in case. - if not obj.dist_install: - return - + def _process_exports(self, exports, backend_file, namespace=""): strings = exports.get_strings() if namespace: + if strings: + backend_file.write('EXPORTS_NAMESPACES += %s\n' % namespace) + export_name = 'EXPORTS_%s' % namespace namespace += '/' + else: + export_name = 'EXPORTS' - for s in strings: - source = os.path.normpath(os.path.join(obj.srcdir, s)) - dest = '%s%s' % (namespace, os.path.basename(s)) - self._install_manifests['dist_include'].add_symlink(source, dest) + # Iterate over the list of export filenames, printing out an EXPORTS + # declaration for each. + if strings: + backend_file.write('%s += %s\n' % (export_name, ' '.join(strings))) - if not os.path.exists(source): - raise Exception('File listed in EXPORTS does not exist: %s' % source) + for s in strings: + p = '%s%s' % (namespace, s) + self._purge_manifests['dist_include'].add(p) children = exports.get_children() for subdir in sorted(children): - self._process_exports(obj, children[subdir], backend_file, - namespace=namespace + subdir) + self._process_exports(children[subdir], backend_file, + namespace=namespace + subdir) def _handle_idl_manager(self, manager): build_files = self._purge_manifests['xpidl'] for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done', 'headers/.mkdir.done', 'xpt/.mkdir.done'): build_files.add(p) for idl in manager.idls.values(): self._install_manifests['dist_idl'].add_symlink(idl['source'], idl['basename']) - self._install_manifests['dist_include'].add_optional_exists('%s.h' - % idl['root']) + self._purge_manifests['dist_include'].add('%s.h' % idl['root']) build_files.add(mozpath.join('headers', '%s.h' % idl['root'])) for module in manager.modules: build_files.add(mozpath.join('xpt', '%s.xpt' % module)) build_files.add(mozpath.join('.deps', '%s.pp' % module)) headers = sorted('%s.h' % idl['root'] for idl in manager.idls.values()) modules = manager.modules
--- a/python/mozbuild/mozbuild/frontend/data.py +++ b/python/mozbuild/mozbuild/frontend/data.py @@ -156,23 +156,21 @@ class XPIDLFile(SandboxDerived): class Exports(SandboxDerived): """Sandbox container object for EXPORTS, which is a HierarchicalStringList. We need an object derived from SandboxDerived for use in the backend, so this object fills that role. It just has a reference to the underlying HierarchicalStringList, which is created when parsing EXPORTS. """ - __slots__ = ('exports', 'dist_install') + __slots__ = ('exports') - def __init__(self, sandbox, exports, dist_install=True): + def __init__(self, sandbox, exports): SandboxDerived.__init__(self, sandbox) self.exports = exports - self.dist_install = dist_install - class IPDLFile(SandboxDerived): """Describes an individual .ipdl source file.""" __slots__ = ( 'basename', )
--- a/python/mozbuild/mozbuild/frontend/emitter.py +++ b/python/mozbuild/mozbuild/frontend/emitter.py @@ -149,18 +149,17 @@ class TreeMetadataEmitter(LoggingMixin): if sandbox[moz]: passthru.variables[mak] = sandbox[moz] if passthru.variables: yield passthru exports = sandbox.get('EXPORTS') if exports: - yield Exports(sandbox, exports, - dist_install=not sandbox.get('NO_DIST_INSTALL', False)) + yield Exports(sandbox, exports) program = sandbox.get('PROGRAM') if program: yield Program(sandbox, program, sandbox['CONFIG']['BIN_SUFFIX']) for manifest in sandbox.get('XPCSHELL_TESTS_MANIFESTS', []): yield XpcshellManifests(sandbox, manifest)
--- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py +++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py @@ -229,26 +229,43 @@ class TestRecursiveMakeBackend(BackendTe } for var, val in expected.items(): # print("test_variable_passthru[%s]" % (var)) found = [str for str in lines if str.startswith(var)] self.assertEqual(found, val) def test_exports(self): - """Ensure EXPORTS is handled properly.""" + """Ensure EXPORTS is written out correctly.""" env = self._consume('exports', RecursiveMakeBackend) - # EXPORTS files should appear in the dist_include install manifest. - m = InstallManifest(path=os.path.join(env.topobjdir, - '_build_manifests', 'install', 'dist_include')) - self.assertEqual(len(m), 7) - self.assertIn('foo.h', m) - self.assertIn('mozilla/mozilla1.h', m) - self.assertIn('mozilla/dom/dom2.h', m) + backend_path = os.path.join(env.topobjdir, 'backend.mk') + lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] + + self.assertEqual(lines, [ + 'MOZBUILD_DERIVED := 1', + 'NO_MAKEFILE_RULE := 1', + 'NO_SUBMAKEFILES_RULE := 1', + 'EXPORTS += foo.h', + 'EXPORTS_NAMESPACES += mozilla', + 'EXPORTS_mozilla += mozilla1.h mozilla2.h', + 'EXPORTS_NAMESPACES += mozilla/dom', + 'EXPORTS_mozilla/dom += dom1.h dom2.h', + 'EXPORTS_NAMESPACES += mozilla/gfx', + 'EXPORTS_mozilla/gfx += gfx.h', + 'EXPORTS_NAMESPACES += nspr/private', + 'EXPORTS_nspr/private += pprio.h', + ]) + + # EXPORTS files should appear in the dist_include purge manifest. + m = PurgeManifest(path=os.path.join(env.topobjdir, + '_build_manifests', 'purge', 'dist_include')) + self.assertIn('foo.h', m.entries) + self.assertIn('mozilla/mozilla1.h', m.entries) + self.assertIn('mozilla/dom/dom2.h', m.entries) def test_xpcshell_manifests(self): """Ensure XPCSHELL_TESTS_MANIFESTS is written out correctly.""" env = self._consume('xpcshell_manifests', RecursiveMakeBackend) backend_path = os.path.join(env.topobjdir, 'backend.mk') lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] @@ -275,18 +292,18 @@ class TestRecursiveMakeBackend(BackendTe self.assertIn('.deps/my_module.pp', m.entries) self.assertIn('xpt/my_module.xpt', m.entries) m = InstallManifest(path=os.path.join(install_dir, 'dist_idl')) self.assertEqual(len(m), 2) self.assertIn('bar.idl', m) self.assertIn('foo.idl', m) - m = InstallManifest(path=os.path.join(install_dir, 'dist_include')) - self.assertIn('foo.h', m) + m = PurgeManifest(path=os.path.join(purge_dir, 'dist_include')) + self.assertIn('foo.h', m.entries) p = os.path.join(env.topobjdir, 'config/makefiles/xpidl') self.assertTrue(os.path.isdir(p)) self.assertTrue(os.path.isfile(os.path.join(p, 'Makefile'))) def test_xpcshell_master_manifest(self): """Ensure that the master xpcshell manifest is written out correctly.""" @@ -303,16 +320,17 @@ class TestRecursiveMakeBackend(BackendTe def test_purge_manifests_written(self): env = self._consume('stub0', RecursiveMakeBackend) purge_dir = os.path.join(env.topobjdir, '_build_manifests', 'purge') self.assertTrue(os.path.exists(purge_dir)) expected = [ 'dist_bin', + 'dist_include', 'dist_private', 'dist_public', 'dist_sdk', 'tests', ] for e in expected: full = os.path.join(purge_dir, e)
--- a/toolkit/components/telemetry/Makefile.in +++ b/toolkit/components/telemetry/Makefile.in @@ -25,21 +25,16 @@ ifdef MOZILLA_OFFICIAL DEFINES += -DMOZILLA_OFFICIAL endif MOZ_HISTOGRAMS_VERSION ?= $(call getSourceRepo)/rev/$(firstword $(shell hg -R $(topsrcdir) parent --template="{node|short}\n" 2>/dev/null)) ifdef MOZ_HISTOGRAMS_VERSION DEFINES += -DHISTOGRAMS_FILE_VERSION="$(MOZ_HISTOGRAMS_VERSION)" endif -INSTALL_TARGETS += histoenums -histoenums_FILES := TelemetryHistogramEnums.h -histoenums_DEST = $(DIST)/include/mozilla -histoenums_TARGET := export - include $(topsrcdir)/config/rules.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk histograms_file := $(srcdir)/Histograms.json histogram_enum_file := TelemetryHistogramEnums.h histogram_data_file := TelemetryHistogramData.inc enum_python_deps := \
--- a/toolkit/components/telemetry/moz.build +++ b/toolkit/components/telemetry/moz.build @@ -11,16 +11,17 @@ XPIDL_SOURCES += [ 'nsITelemetryPing.idl', ] MODULE = 'telemetry' EXPORTS.mozilla += [ 'ProcessedStack.h', 'Telemetry.h', + 'TelemetryHistogramEnums.h', ] CPP_SOURCES += [ 'Telemetry.cpp', ] EXTRA_COMPONENTS += [ 'TelemetryPing.manifest',
--- a/uriloader/exthandler/moz.build +++ b/uriloader/exthandler/moz.build @@ -37,24 +37,22 @@ EXPORTS += [ ] EXPORTS += [ 'nsExternalHelperAppService.h', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': EXPORTS += [ - osdir + '/nsExternalSharingAppService.h', - osdir + '/nsExternalURLHandlerService.h', + 'nsExternalSharingAppService.h', + 'nsExternalURLHandlerService.h', ] if CONFIG['MOZ_ENABLE_MEEGOTOUCHSHARE']: - EXPORTS += [ - osdir + '/nsExternalSharingAppService.h', - ] + EXPORTS += ['nsExternalSharingAppService.h'] EXPORTS.mozilla.dom += [ 'ExternalHelperAppChild.h', 'ExternalHelperAppParent.h', ] CPP_SOURCES += [ 'ExternalHelperAppChild.cpp',
deleted file mode 100644 --- a/xpcom/Makefile.in +++ /dev/null @@ -1,15 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# 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/. - -DEPTH := @DEPTH@ -topsrcdir := @top_srcdir@ -srcdir := @srcdir@ -VPATH := @srcdir@ - -INSTALL_TARGETS += xpcom -xpcom_FILES := xpcom-config.h -xpcom_DEST = $(DIST)/include -xpcom_TARGET := export - -include $(topsrcdir)/config/rules.mk
--- a/xpcom/base/Makefile.in +++ b/xpcom/base/Makefile.in @@ -14,24 +14,16 @@ MOZILLA_INTERNAL_API =1 ifeq ($(OS_ARCH),WINNT) ifdef MOZ_DEBUG CSRCS += pure_api.c endif endif #if OS_ARCH == WINNT -INSTALL_TARGETS += errorlist -errorlist_FILES := \ - ErrorListCDefines.h \ - ErrorListCxxDefines.h \ - $(NULL) -errorlist_DEST = $(DIST)/include -errorlist_TARGET := export - include $(topsrcdir)/config/rules.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk ifdef MOZ_WIDGET_GTK CXXFLAGS += $(TK_CFLAGS) endif LOCAL_INCLUDES += \
--- a/xpcom/base/moz.build +++ b/xpcom/base/moz.build @@ -38,16 +38,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco ] XPIDL_MODULE = 'xpcom_base' MODULE = 'xpcom' EXPORTS += [ 'ErrorList.h', + 'ErrorListCDefines.h', + 'ErrorListCxxDefines.h', 'nsAgg.h', 'nsAutoPtr.h', 'nsAutoRef.h', 'nsCom.h', 'nsCycleCollector.h', 'nsDebugImpl.h', 'nsError.h', 'nsGZFileWriter.h',