mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset 88a77375f4df (bug 924187) for probably breaking PGO builds CLOSED TREE
This commit is contained in:
parent
14ff8eee17
commit
1422146e9b
@ -43,16 +43,6 @@ endif
|
||||
$(dist_include_dir) $(@D) $(idl_deps_dir) $(libxul_sdk_includes) \
|
||||
$(basename $(notdir $@)) $($(basename $(notdir $@))_deps)
|
||||
|
||||
# Chrome manifests may be written from several Makefiles at various times during
|
||||
# the build. The 'buildlist' action adds to the file if it already exists, but
|
||||
# if it does exist, make considers it to be up-to-date (as we have no inputs to
|
||||
# depend on). We use FORCE to ensure that we always add the interface manifest,
|
||||
# whether or not the chrome manifest already exists.
|
||||
%/chrome.manifest: FORCE
|
||||
$(call py_action,buildlist,$@ 'manifest components/interfaces.manifest')
|
||||
|
||||
chrome_manifests := @chrome_manifests@
|
||||
|
||||
xpidl_modules := @xpidl_modules@
|
||||
xpt_files := @xpt_files@
|
||||
|
||||
@ -62,7 +52,7 @@ depends_files := $(foreach root,$(xpidl_modules),$(idl_deps_dir)/$(root).pp)
|
||||
|
||||
GARBAGE += $(xpt_files) $(depends_files)
|
||||
|
||||
xpidl:: $(xpt_files) $(chrome_manifests)
|
||||
xpidl:: $(xpt_files)
|
||||
|
||||
$(xpt_files): $(process_py) $(call mkdir_deps,$(idl_deps_dir) $(dist_include_dir))
|
||||
|
||||
|
@ -1153,6 +1153,21 @@ INSTALL_TARGETS += AUTOCFG_JS_EXPORTS
|
||||
endif
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Install a linked .xpt into the appropriate place.
|
||||
# This should ideally be performed by the non-recursive idl make file. Some day.
|
||||
ifdef XPT_NAME #{
|
||||
|
||||
ifndef NO_DIST_INSTALL
|
||||
ifndef NO_INTERFACES_MANIFEST
|
||||
export:: $(call mkdir_deps,$(FINAL_TARGET)/components)
|
||||
$(call py_action,buildlist,$(FINAL_TARGET)/components/interfaces.manifest 'interfaces $(XPT_NAME)')
|
||||
$(call py_action,buildlist,$(FINAL_TARGET)/chrome.manifest 'manifest components/interfaces.manifest')
|
||||
endif
|
||||
endif
|
||||
|
||||
endif #} XPT_NAME
|
||||
|
||||
################################################################################
|
||||
# Copy each element of EXTRA_COMPONENTS to $(FINAL_TARGET)/components
|
||||
ifdef EXTRA_COMPONENTS
|
||||
|
7
netwerk/test/httpserver/Makefile.in
Normal file
7
netwerk/test/httpserver/Makefile.in
Normal file
@ -0,0 +1,7 @@
|
||||
# vim: noexpandtab ts=8 sw=8
|
||||
#
|
||||
# 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/.
|
||||
|
||||
NO_INTERFACES_MANIFEST = 1
|
@ -10,9 +10,6 @@ XPIDL_SOURCES += [
|
||||
|
||||
XPIDL_MODULE = 'test_necko'
|
||||
|
||||
# Don't add our test-only .xpt files to the normal manifests
|
||||
XPIDL_NO_MANIFEST = True
|
||||
|
||||
XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
|
@ -45,39 +45,29 @@ class XPIDLManager(object):
|
||||
|
||||
self.idls = {}
|
||||
self.modules = {}
|
||||
self.interface_manifests = {}
|
||||
self.chrome_manifests = set()
|
||||
|
||||
def register_idl(self, idl, allow_existing=False):
|
||||
def register_idl(self, source, module, install_target, allow_existing=False):
|
||||
"""Registers an IDL file with this instance.
|
||||
|
||||
The IDL file will be built, installed, etc.
|
||||
"""
|
||||
basename = mozpath.basename(idl.source_path)
|
||||
basename = mozpath.basename(source)
|
||||
root = mozpath.splitext(basename)[0]
|
||||
xpt = '%s.xpt' % idl.module
|
||||
manifest = mozpath.join(idl.install_target, 'components', 'interfaces.manifest')
|
||||
chrome_manifest = mozpath.join(idl.install_target, 'chrome.manifest')
|
||||
|
||||
entry = {
|
||||
'source': idl.source_path,
|
||||
'module': idl.module,
|
||||
'source': source,
|
||||
'module': module,
|
||||
'basename': basename,
|
||||
'root': root,
|
||||
'manifest': manifest,
|
||||
}
|
||||
|
||||
if not allow_existing and entry['basename'] in self.idls:
|
||||
raise Exception('IDL already registered: %s' % entry['basename'])
|
||||
|
||||
self.idls[entry['basename']] = entry
|
||||
t = self.modules.setdefault(entry['module'], (idl.install_target, set()))
|
||||
t = self.modules.setdefault(entry['module'], (install_target, set()))
|
||||
t[1].add(entry['root'])
|
||||
|
||||
if idl.add_to_manifest:
|
||||
self.interface_manifests.setdefault(manifest, set()).add(xpt)
|
||||
self.chrome_manifests.add(chrome_manifest)
|
||||
|
||||
|
||||
class WebIDLCollection(object):
|
||||
"""Collects WebIDL info referenced during the build."""
|
||||
@ -200,7 +190,8 @@ class CommonBackend(BuildBackend):
|
||||
topsrcdir=obj.topsrcdir)
|
||||
|
||||
elif isinstance(obj, XPIDLFile):
|
||||
self._idl_manager.register_idl(obj)
|
||||
self._idl_manager.register_idl(obj.source_path, obj.module,
|
||||
obj.install_target)
|
||||
|
||||
elif isinstance(obj, ConfigFileSubstitution):
|
||||
# Do not handle ConfigFileSubstitution for Makefiles. Leave that
|
||||
|
@ -99,7 +99,6 @@ MOZBUILD_VARIABLES = [
|
||||
'MAKE_FRAMEWORK',
|
||||
'MODULE',
|
||||
'NO_DIST_INSTALL',
|
||||
'NO_INTERFACES_MANIFEST',
|
||||
'NO_JS_MANIFEST',
|
||||
'OS_LIBS',
|
||||
'PARALLEL_DIRS',
|
||||
@ -1068,22 +1067,6 @@ INSTALL_TARGETS += %(prefix)s
|
||||
rules = StringIO()
|
||||
mk.dump(rules, removal_guard=False)
|
||||
|
||||
# Write out manifests defining interfaces
|
||||
dist_dir = mozpath.join(self.environment.topobjdir, 'dist')
|
||||
for manifest, entries in manager.interface_manifests.items():
|
||||
path = mozpath.join(self.environment.topobjdir, manifest)
|
||||
with self._write_file(path) as fh:
|
||||
for xpt in sorted(entries):
|
||||
fh.write('interfaces %s\n' % xpt)
|
||||
|
||||
if install_target.startswith('dist/'):
|
||||
path = mozpath.relpath(path, dist_dir)
|
||||
prefix, subpath = path.split('/', 1)
|
||||
key = 'dist_%s' % prefix
|
||||
self._install_manifests[key].add_optional_exists(subpath)
|
||||
|
||||
chrome_manifests = [mozpath.join('$(DEPTH)', m) for m in sorted(manager.chrome_manifests)]
|
||||
|
||||
# Create dependency for output header so we force regeneration if the
|
||||
# header was deleted. This ideally should not be necessary. However,
|
||||
# some processes (such as PGO at the time this was implemented) wipe
|
||||
@ -1098,7 +1081,6 @@ INSTALL_TARGETS += %(prefix)s
|
||||
obj.topobjdir = self.environment.topobjdir
|
||||
obj.config = self.environment
|
||||
self._create_makefile(obj, extra=dict(
|
||||
chrome_manifests = ' '.join(chrome_manifests),
|
||||
xpidl_rules=rules.getvalue(),
|
||||
xpidl_modules=' '.join(xpt_modules),
|
||||
xpt_files=' '.join(sorted(xpt_files)),
|
||||
|
@ -1122,14 +1122,6 @@ VARIABLES = {
|
||||
as ``MODULE``.
|
||||
""", None),
|
||||
|
||||
'XPIDL_NO_MANIFEST': (bool, bool,
|
||||
"""Indicate that the XPIDL module should not be added to a manifest.
|
||||
|
||||
This flag exists primarily to prevent test-only XPIDL modules from being
|
||||
added to the application's chrome manifest. Most XPIDL modules should
|
||||
not use this flag.
|
||||
""", None),
|
||||
|
||||
'IPDL_SOURCES': (StrictOrderingOnAppendList, list,
|
||||
"""IPDL source files.
|
||||
|
||||
|
@ -160,19 +160,17 @@ class XPIDLFile(ContextDerived):
|
||||
"""Describes an XPIDL file to be compiled."""
|
||||
|
||||
__slots__ = (
|
||||
'add_to_manifest',
|
||||
'basename',
|
||||
'install_target',
|
||||
'source_path',
|
||||
)
|
||||
|
||||
def __init__(self, context, source, module, add_to_manifest):
|
||||
def __init__(self, context, source, module):
|
||||
ContextDerived.__init__(self, context)
|
||||
|
||||
self.source_path = source
|
||||
self.basename = mozpath.basename(source)
|
||||
self.module = module
|
||||
self.add_to_manifest = add_to_manifest
|
||||
|
||||
self.install_target = context['FINAL_TARGET']
|
||||
|
||||
|
@ -799,7 +799,7 @@ class TreeMetadataEmitter(LoggingMixin):
|
||||
|
||||
for idl in context['XPIDL_SOURCES']:
|
||||
yield XPIDLFile(context, mozpath.join(context.srcdir, idl),
|
||||
xpidl_module, add_to_manifest=not context['XPIDL_NO_MANIFEST'])
|
||||
xpidl_module)
|
||||
|
||||
def _process_generated_files(self, context):
|
||||
generated_files = context.get('GENERATED_FILES')
|
||||
|
@ -497,7 +497,6 @@ class TestRecursiveMakeBackend(BackendTester):
|
||||
|
||||
m = InstallManifest(path=os.path.join(install_dir, 'dist_bin'))
|
||||
self.assertIn('components/my_module.xpt', m)
|
||||
self.assertIn('components/interfaces.manifest', m)
|
||||
|
||||
m = InstallManifest(path=mozpath.join(install_dir, 'dist_include'))
|
||||
self.assertIn('foo.h', m)
|
||||
|
@ -5,6 +5,9 @@
|
||||
# Make sure we have symbols in case we need to debug these.
|
||||
MOZ_DEBUG_SYMBOLS = 1
|
||||
|
||||
# Don't add our test-only .xpt files to the normal manifests
|
||||
NO_INTERFACES_MANIFEST = 1
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
ifneq (,$(SIMPLE_PROGRAMS))
|
||||
|
@ -101,9 +101,6 @@ XPIDL_SOURCES += [
|
||||
'NotXPCOMTest.idl',
|
||||
]
|
||||
|
||||
# Don't add our test-only .xpt files to the normal manifests
|
||||
XPIDL_NO_MANIFEST = True
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
'../ds',
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user