ipc/glue/moz.build
author Mark Banner <standard8@mozilla.com>
Fri, 29 Jul 2016 18:14:48 +0100
changeset 307376 9346c1a86c6c5f09817f60eb600543bcac65ce94
parent 306187 3ec6380fca8207fa199693206a3ca24975bf9833
child 317428 7724e3dc67d8a5949aada7f831386c3744d3841f
permissions -rw-r--r--
Backed out changeset 1a8114aa64c1 (bug 1287827) for breaking tests

# -*- 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/.

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',
    'IPCStreamUtils.h',
    'MessageChannel.h',
    'MessageLink.h',
    'Neutering.h',
    'ProcessChild.h',
    'ProtocolUtils.h',
    'ScopedXREEmbed.h',
    'SendStream.h',
    'SendStreamAlloc.h',
    'SharedMemory.h',
    'SharedMemoryBasic.h',
    'Shmem.h',
    'TaskFactory.h',
    'Transport.h',
    'URIUtils.h',
    'WindowsMessageLoop.h',
]

if CONFIG['MOZ_FAULTY'] == '1':
    EXPORTS.mozilla.ipc += ['Faulty.h']
    SOURCES += ['Faulty.cpp']

if CONFIG['OS_ARCH'] == 'WINNT':
    DEFINES['WEBRTC_WIN'] = True
    EXPORTS.mozilla.ipc += [
        'Transport_win.h',
    ]
    SOURCES += [
        'SharedMemory_windows.cpp',
        'Transport_win.cpp',
        'WindowsMessageLoop.cpp',
    ]
else:
    DEFINES['WEBRTC_POSIX'] = True
    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',
    ]

# 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',
    ]

EXPORTS.ipc += [
    'IPCMessageUtils.h',
]

UNIFIED_SOURCES += [
    'BackgroundImpl.cpp',
    'BackgroundUtils.cpp',
    'BrowserProcessSubThread.cpp',
    'FileDescriptor.cpp',
    'FileDescriptorUtils.cpp',
    'InputStreamUtils.cpp',
    'IPCMessageUtils.cpp',
    'IPCStreamUtils.cpp',
    'MessageChannel.cpp',
    'MessageLink.cpp',
    'MessagePump.cpp',
    'ProcessChild.cpp',
    'ProtocolUtils.cpp',
    'ScopedXREEmbed.cpp',
    'SendStreamChild.cpp',
    'SendStreamParent.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',
]

if CONFIG['_MSC_VER']:
    # This is intended as a temporary hack to support building with VS2015.
    # 'reinterpret_cast': conversion from 'DWORD' to 'HANDLE' of greater size
    SOURCES['BackgroundChildImpl.cpp'].flags += ['-wd4312']
    SOURCES['BackgroundParentImpl.cpp'].flags += ['-wd4312']

LOCAL_INCLUDES += [
    '/caps',
    '/dom/broadcastchannel',
    '/dom/indexedDB',
    '/dom/workers',
    '/media/webrtc/trunk',
    '/xpcom/build',
]

IPDL_SOURCES = [
    'InputStreamParams.ipdlh',
    'IPCStream.ipdlh',
    'PBackground.ipdl',
    'PBackgroundSharedTypes.ipdlh',
    'PBackgroundTest.ipdl',
    'PFileDescriptorSet.ipdl',
    'PProcLoader.ipdl',
    'ProtocolTypes.ipdlh',
    'PSendStream.ipdl',
    '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_NAME_PIE',
            'MOZ_CHILD_PROCESS_BUNDLE', 'DLL_PREFIX', 'DLL_SUFFIX'):
    DEFINES[var] = '"%s"' % CONFIG[var]

LOCAL_INCLUDES += [
    '/toolkit/crashreporter',
]

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['GNU_CXX']:
    CXXFLAGS += ['-Wno-shadow']