diff options
Diffstat (limited to '')
-rw-r--r-- | ipc/glue/moz.build | 307 |
1 files changed, 307 insertions, 0 deletions
diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build new file mode 100644 index 0000000000..3651a9794e --- /dev/null +++ b/ipc/glue/moz.build @@ -0,0 +1,307 @@ +# -*- 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 += [ + "AsyncBlockers.h", + "BackgroundChild.h", + "BackgroundParent.h", + "BackgroundStarterChild.h", + "BackgroundStarterParent.h", + "BackgroundUtils.h", + "BigBuffer.h", + "BrowserProcessSubThread.h", + "ByteBuf.h", + "ByteBufUtils.h", + "CrashReporterClient.h", + "CrashReporterHelper.h", + "CrashReporterHost.h", + "CrossProcessMutex.h", + "CrossProcessSemaphore.h", + "DataPipe.h", + "Endpoint.h", + "EnvironmentMap.h", + "FileDescriptor.h", + "FileDescriptorUtils.h", + "GeckoChildProcessHost.h", + "IdleSchedulerChild.h", + "IdleSchedulerParent.h", + "InputStreamUtils.h", + "IOThreadChild.h", + "IPCCore.h", + "IPCForwards.h", + "IPCStreamUtils.h", + "IPCTypes.h", + "IPDLParamTraits.h", + "IPDLStructMember.h", + "LaunchError.h", + "LibrarySandboxPreload.h", + "MessageChannel.h", + "MessageLink.h", + "MessagePump.h", + "Neutering.h", + "NodeChannel.h", + "NodeController.h", + "ProcessChild.h", + "ProcessUtils.h", + "ProtocolMessageUtils.h", + "ProtocolUtils.h", + "RandomAccessStreamUtils.h", + "RawShmem.h", + "ScopedPort.h", + "SerializedStructuredCloneBuffer.h", + "SharedMemory.h", + "SharedMemoryBasic.h", + "Shmem.h", + "ShmemMessageUtils.h", + "SideVariant.h", + "TaintingIPCUtils.h", + "TaskFactory.h", + "ToplevelActorHolder.h", + "TransportSecurityInfoUtils.h", + "URIUtils.h", + "UtilityAudioDecoder.h", + "UtilityAudioDecoderChild.h", + "UtilityAudioDecoderParent.h", + "UtilityProcessChild.h", + "UtilityProcessHost.h", + "UtilityProcessImpl.h", + "UtilityProcessManager.h", + "UtilityProcessParent.h", + "UtilityProcessSandboxing.h", + "WindowsMessageLoop.h", +] + +if CONFIG["OS_ARCH"] == "WINNT": + SOURCES += [ + "SharedMemory_windows.cpp", + "WindowsMessageLoop.cpp", + ] +else: + UNIFIED_SOURCES += [ + "SharedMemory_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 += [ + "BackgroundImpl.cpp", + "BackgroundUtils.cpp", + "BigBuffer.cpp", + "BrowserProcessSubThread.cpp", + "CrashReporterClient.cpp", + "CrashReporterHost.cpp", + "DataPipe.cpp", + "Endpoint.cpp", + "FileDescriptor.cpp", + "FileDescriptorUtils.cpp", + "IdleSchedulerChild.cpp", + "IdleSchedulerParent.cpp", + "InputStreamUtils.cpp", + "IPCMessageUtilsSpecializations.cpp", + "IPCStreamUtils.cpp", + "LaunchError.cpp", + "LibrarySandboxPreload.cpp", + "MessageChannel.cpp", + "MessageLink.cpp", + "MessagePump.cpp", + "NodeChannel.cpp", + "NodeController.cpp", + "ProcessChild.cpp", + "ProcessUtils_common.cpp", + "ProtocolUtils.cpp", + "RandomAccessStreamUtils.cpp", + "RawShmem.cpp", + "ScopedPort.cpp", + "SerializedStructuredCloneBuffer.cpp", + "SharedMemory.cpp", + "Shmem.cpp", + "StringUtil.cpp", + "TransportSecurityInfoUtils.cpp", + "URIUtils.cpp", + "UtilityAudioDecoder.cpp", + "UtilityAudioDecoderChild.cpp", + "UtilityAudioDecoderParent.cpp", + "UtilityProcessChild.cpp", + "UtilityProcessHost.cpp", + "UtilityProcessImpl.cpp", + "UtilityProcessManager.cpp", + "UtilityProcessParent.cpp", +] + +SOURCES += [ + "BackgroundChildImpl.cpp", + "BackgroundParentImpl.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", + ] + +if CONFIG["OS_ARCH"] == "WINNT": + UNIFIED_SOURCES += ["MessagePump_windows.cpp"] +elif CONFIG["OS_ARCH"] == "Darwin": + UNIFIED_SOURCES += ["MessagePump_mac.mm"] +elif CONFIG["OS_TARGET"] == "Android": + UNIFIED_SOURCES += ["MessagePump_android.cpp"] + +LOCAL_INCLUDES += [ + "/caps", + "/dom/broadcastchannel", + "/dom/indexedDB", + "/dom/storage", + "/netwerk/base", + "/third_party/libwebrtc", + "/third_party/libwebrtc/third_party/abseil-cpp", + "/tools/fuzzing/ipc", + "/xpcom/build", +] + +PREPROCESSED_IPDL_SOURCES = [ + "PUtilityAudioDecoder.ipdl", + "PUtilityProcess.ipdl", +] + +IPDL_SOURCES = [ + "InputStreamParams.ipdlh", + "IPCStream.ipdlh", + "PBackground.ipdl", + "PBackgroundSharedTypes.ipdlh", + "PBackgroundStarter.ipdl", + "PBackgroundTest.ipdl", + "PIdleScheduler.ipdl", + "ProtocolTypes.ipdlh", + "RandomAccessStreamParams.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["ENABLE_TESTS"]: + DIRS += [ + "test/gtest", + "test/utility_process_xpcom", + "test/browser", + ] + +# Add libFuzzer configuration directives +include("/tools/fuzzing/libfuzzer-config.mozbuild") |