mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
84c01c942b
We want the ability to read data from any moz.build file without needing a full build configuration (running configure). This will enable tools to consume metadata by merely having a copy of the source code and nothing more. This commit creates the EmptyConfig object. It is a config object that - as its name implies - is empty. It will be used for reading moz.build files in "no config" mode. Many moz.build files make assumptions that variables in CONFIG are defined and that they are strings. We create the EmptyValue type that behaves like an empty unicode string. Since moz.build files also do some type checking, we carve an exemption for EmptyValue, just like we do for None. We add a test to verify that reading moz.build files in "no config" mode works. This required some minor changes to existing moz.build files to make them work in the new execution mode.
173 lines
4.0 KiB
Python
173 lines
4.0 KiB
Python
# -*- 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/.
|
|
|
|
EXPORTS += [
|
|
'nsIIPCBackgroundChildCreateCallback.h',
|
|
'nsIIPCSerializableInputStream.h',
|
|
'nsIIPCSerializableURI.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.ipc += [
|
|
'BackgroundChild.h',
|
|
'BackgroundParent.h',
|
|
'BackgroundUtils.h',
|
|
'BrowserProcessSubThread.h',
|
|
'CrossProcessMutex.h',
|
|
'FileDescriptor.h',
|
|
'FileDescriptorSetChild.h',
|
|
'FileDescriptorSetParent.h',
|
|
'FileDescriptorUtils.h',
|
|
'GeckoChildProcessHost.h',
|
|
'InputStreamUtils.h',
|
|
'IOThreadChild.h',
|
|
'MessageChannel.h',
|
|
'MessageLink.h',
|
|
'ProcessChild.h',
|
|
'ProtocolUtils.h',
|
|
'ScopedXREEmbed.h',
|
|
'SharedMemory.h',
|
|
'SharedMemoryBasic.h',
|
|
'SharedMemorySysV.h',
|
|
'Shmem.h',
|
|
'Transport.h',
|
|
'URIUtils.h',
|
|
'WindowsMessageLoop.h',
|
|
]
|
|
|
|
if CONFIG['OS_ARCH'] == 'WINNT':
|
|
EXPORTS.mozilla.ipc += [
|
|
'Transport_win.h',
|
|
]
|
|
SOURCES += [
|
|
'SharedMemory_windows.cpp',
|
|
'Transport_win.cpp',
|
|
'WindowsMessageLoop.cpp',
|
|
]
|
|
else:
|
|
EXPORTS.mozilla.ipc += [
|
|
'Transport_posix.h',
|
|
]
|
|
UNIFIED_SOURCES += [
|
|
'SharedMemory_posix.cpp',
|
|
'Transport_posix.cpp',
|
|
]
|
|
|
|
if CONFIG['OS_ARCH'] == 'WINNT':
|
|
SOURCES += [
|
|
'CrossProcessMutex_windows.cpp',
|
|
]
|
|
elif CONFIG['OS_ARCH'] in ('Linux', 'Darwin'):
|
|
UNIFIED_SOURCES += [
|
|
'CrossProcessMutex_posix.cpp',
|
|
]
|
|
else:
|
|
UNIFIED_SOURCES += [
|
|
'CrossProcessMutex_unimplemented.cpp',
|
|
]
|
|
|
|
# Android has its own,
|
|
# almost-but-not-quite-compatible-with-POSIX-or-/dev/shm shared memory
|
|
# impl.
|
|
if CONFIG['OS_TARGET'] == 'Android':
|
|
EXPORTS.mozilla.ipc += ['SharedMemoryBasic_android.h']
|
|
UNIFIED_SOURCES += [
|
|
'SharedMemoryBasic_android.cpp',
|
|
]
|
|
else:
|
|
EXPORTS.mozilla.ipc += ['SharedMemoryBasic_chromium.h']
|
|
|
|
if CONFIG['OS_ARCH'] == 'Linux':
|
|
UNIFIED_SOURCES += [
|
|
'ProcessUtils_linux.cpp',
|
|
]
|
|
elif CONFIG['OS_ARCH'] in ('DragonFly', 'FreeBSD', 'NetBSD', 'OpenBSD'):
|
|
UNIFIED_SOURCES += [
|
|
'ProcessUtils_bsd.cpp'
|
|
]
|
|
elif CONFIG['OS_ARCH'] == 'Darwin':
|
|
UNIFIED_SOURCES += [
|
|
'ProcessUtils_mac.mm'
|
|
]
|
|
else:
|
|
UNIFIED_SOURCES += [
|
|
'ProcessUtils_none.cpp',
|
|
]
|
|
|
|
EXPORTS.ipc += [
|
|
'IPCMessageUtils.h',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'BackgroundImpl.cpp',
|
|
'BackgroundUtils.cpp',
|
|
'BrowserProcessSubThread.cpp',
|
|
'FileDescriptor.cpp',
|
|
'FileDescriptorUtils.cpp',
|
|
'InputStreamUtils.cpp',
|
|
'MessageChannel.cpp',
|
|
'MessageLink.cpp',
|
|
'MessagePump.cpp',
|
|
'ProcessChild.cpp',
|
|
'ProtocolUtils.cpp',
|
|
'ScopedXREEmbed.cpp',
|
|
'SharedMemory.cpp',
|
|
'Shmem.cpp',
|
|
'StringUtil.cpp',
|
|
]
|
|
|
|
# GeckoChildProcessHost.cpp cannot be built in unified mode because it uses plarena.h.
|
|
# URIUtils.cpp cannot be built in unified mode because of name clashes on strdup.
|
|
SOURCES += [
|
|
'BackgroundChildImpl.cpp',
|
|
'BackgroundParentImpl.cpp',
|
|
'FileDescriptorSetChild.cpp',
|
|
'FileDescriptorSetParent.cpp',
|
|
'GeckoChildProcessHost.cpp',
|
|
'URIUtils.cpp',
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/dom/broadcastchannel',
|
|
'/dom/indexedDB',
|
|
'/xpcom/build',
|
|
]
|
|
|
|
IPDL_SOURCES = [
|
|
'InputStreamParams.ipdlh',
|
|
'PBackground.ipdl',
|
|
'PBackgroundSharedTypes.ipdlh',
|
|
'PBackgroundTest.ipdl',
|
|
'PFileDescriptorSet.ipdl',
|
|
'PProcLoader.ipdl',
|
|
'ProtocolTypes.ipdlh',
|
|
'URIParams.ipdlh',
|
|
]
|
|
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/toolkit/xre',
|
|
'/xpcom/threads',
|
|
]
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
for var in ('MOZ_CHILD_PROCESS_NAME', 'MOZ_CHILD_PROCESS_BUNDLE',
|
|
'DLL_PREFIX', 'DLL_SUFFIX'):
|
|
DEFINES[var] = '"%s"' % CONFIG[var]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/toolkit/crashreporter',
|
|
]
|
|
|
|
if CONFIG['OS_ARCH'] == 'WINNT':
|
|
LOCAL_INCLUDES += [
|
|
'/security/sandbox/win/src/sandboxbroker',
|
|
]
|
|
|
|
FAIL_ON_WARNINGS = True
|