Source code

Revision control

Other Tools

# -*- Mode: python; 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/.
include("/dom/media/webrtc/third_party_build/webrtc.mozbuild")
EXPORTS += [
"nsIIPCSerializableInputStream.h",
]
EXPORTS.mozilla.ipc += [
"AutoTransportDescriptor.h",
"BackgroundChild.h",
"BackgroundParent.h",
"BackgroundUtils.h",
"BrowserProcessSubThread.h",
"ByteBuf.h",
"ByteBufUtils.h",
"CrashReporterClient.h",
"CrashReporterHelper.h",
"CrashReporterHost.h",
"CrossProcessMutex.h",
"CrossProcessSemaphore.h",
"Endpoint.h",
"EnvironmentMap.h",
"FileDescriptor.h",
"FileDescriptorSetChild.h",
"FileDescriptorSetParent.h",
"FileDescriptorUtils.h",
"GeckoChildProcessHost.h",
"IdleSchedulerChild.h",
"IdleSchedulerParent.h",
"InputStreamUtils.h",
"IOThreadChild.h",
"IPCCore.h",
"IPCStreamAlloc.h",
"IPCStreamDestination.h",
"IPCStreamSource.h",
"IPCStreamUtils.h",
"IPCTypes.h",
"IPDLParamTraits.h",
"LibrarySandboxPreload.h",
"MessageChannel.h",
"MessageLink.h",
"MessagePump.h",
"Neutering.h",
"NodeChannel.h",
"NodeController.h",
"ProcessChild.h",
"ProcessUtils.h",
"ProtocolMessageUtils.h",
"ProtocolUtils.h",
"ProtocolUtilsFwd.h",
"ScopedPort.h",
"ScopedXREEmbed.h",
"SerializedStructuredCloneBuffer.h",
"SharedMemory.h",
"SharedMemoryBasic.h",
"Shmem.h",
"ShmemMessageUtils.h",
"TaintingIPCUtils.h",
"TaskFactory.h",
"Transport.h",
"TransportSecurityInfoUtils.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 not CONFIG["OS_ARCH"] in ("NetBSD", "OpenBSD"):
UNIFIED_SOURCES += [
"CrossProcessMutex_posix.cpp",
]
else:
UNIFIED_SOURCES += [
"CrossProcessMutex_unimplemented.cpp",
]
if CONFIG["OS_ARCH"] == "WINNT":
SOURCES += [
"CrossProcessSemaphore_windows.cpp",
]
elif CONFIG["OS_ARCH"] != "Darwin":
UNIFIED_SOURCES += [
"CrossProcessSemaphore_posix.cpp",
]
else:
UNIFIED_SOURCES += [
"CrossProcessSemaphore_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",
]
elif CONFIG["OS_ARCH"] == "Darwin":
EXPORTS.mozilla.ipc += ["SharedMemoryBasic_mach.h"]
SOURCES += [
"SharedMemoryBasic_mach.mm",
]
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",
]
if CONFIG["OS_ARCH"] != "WINNT":
EXPORTS.mozilla.ipc += [
"FileDescriptorShuffle.h",
]
UNIFIED_SOURCES += [
"FileDescriptorShuffle.cpp",
]
EXPORTS.ipc += [
"EnumSerializer.h",
"IPCMessageUtils.h",
"IPCMessageUtilsSpecializations.h",
]
UNIFIED_SOURCES += [
"AutoTransportDescriptor.cpp",
"BackgroundImpl.cpp",
"BackgroundUtils.cpp",
"BrowserProcessSubThread.cpp",
"CrashReporterClient.cpp",
"CrashReporterHost.cpp",
"Endpoint.cpp",
"FileDescriptor.cpp",
"FileDescriptorUtils.cpp",
"IdleSchedulerChild.cpp",
"IdleSchedulerParent.cpp",
"InputStreamUtils.cpp",
"IPCMessageUtils.cpp",
"IPCMessageUtilsSpecializations.cpp",
"IPCStreamChild.cpp",
"IPCStreamDestination.cpp",
"IPCStreamParent.cpp",
"IPCStreamSource.cpp",
"IPCStreamUtils.cpp",
"LibrarySandboxPreload.cpp",
"MessageChannel.cpp",
"MessageLink.cpp",
"MessagePump.cpp",
"NodeChannel.cpp",
"NodeController.cpp",
"ProcessChild.cpp",
"ProcessUtils_common.cpp",
"ProtocolUtils.cpp",
"ScopedPort.cpp",
"ScopedXREEmbed.cpp",
"SharedMemory.cpp",
"Shmem.cpp",
"StringUtil.cpp",
"TransportSecurityInfoUtils.cpp",
"URIUtils.cpp",
]
SOURCES += [
"BackgroundChildImpl.cpp",
"BackgroundParentImpl.cpp",
"FileDescriptorSetChild.cpp",
"FileDescriptorSetParent.cpp",
]
if CONFIG["OS_ARCH"] == "Darwin":
# GeckoChildProcessHost.cpp cannot be built unified due to OSX header
# clashes with TextRange.
SOURCES += [
"GeckoChildProcessHost.cpp",
]
else:
UNIFIED_SOURCES += [
"GeckoChildProcessHost.cpp",
]
LOCAL_INCLUDES += [
"/caps",
"/dom/broadcastchannel",
"/dom/indexedDB",
"/dom/storage",
"/netwerk/base",
"/third_party/libwebrtc",
"/third_party/libwebrtc/third_party/abseil-cpp",
"/xpcom/build",
]
IPDL_SOURCES = [
"InputStreamParams.ipdlh",
"IPCStream.ipdlh",
"PBackground.ipdl",
"PBackgroundSharedTypes.ipdlh",
"PBackgroundTest.ipdl",
"PChildToParentStream.ipdl",
"PFileDescriptorSet.ipdl",
"PIdleScheduler.ipdl",
"PParentToChildStream.ipdl",
"ProtocolTypes.ipdlh",
"URIParams.ipdlh",
]
if CONFIG["MOZ_ENABLE_FORKSERVER"]:
EXPORTS.mozilla.ipc += [
"ForkServer.h",
"ForkServiceChild.h",
"MiniTransceiver.h",
]
UNIFIED_SOURCES += [
"ForkServer.cpp",
"ForkServiceChild.cpp",
"MiniTransceiver.cpp",
]
XPCOM_MANIFESTS += [
"components.conf",
]
LOCAL_INCLUDES += [
"/dom/ipc",
"/toolkit/crashreporter",
"/toolkit/xre",
"/xpcom/base",
"/xpcom/threads",
]
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
if CONFIG["OS_ARCH"] == "Darwin":
OS_LIBS += ["bsm"] # for audit_token_to_pid
for var in ("MOZ_CHILD_PROCESS_NAME", "MOZ_CHILD_PROCESS_BUNDLE"):
DEFINES[var] = '"%s"' % CONFIG[var]
if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "WINNT":
LOCAL_INCLUDES += [
"/security/sandbox/chromium",
"/security/sandbox/chromium-shim",
"/security/sandbox/win/src/sandboxbroker",
]
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
CXXFLAGS += ["-Wno-shadow"]
# Add libFuzzer configuration directives
include("/tools/fuzzing/libfuzzer-config.mozbuild")