DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (5350524bb654)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
# -*- 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/.

# Any changes that affect Android need to be made in pie/moz.build as well.

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
    Program(CONFIG['MOZ_CHILD_PROCESS_NAME'])
    SOURCES += [
        'MozillaRuntimeMainAndroid.cpp',
    ]

    DIRS += ['pie']
else:
    GeckoProgram(CONFIG['MOZ_CHILD_PROCESS_NAME'], linkage='dependent')

    SOURCES += [
        'MozillaRuntimeMain.cpp',
    ]

include('/ipc/chromium/chromium-config.mozbuild')

LOCAL_INCLUDES += [
    '/toolkit/xre',
    '/xpcom/base',
]

# We link GMPLoader into plugin-container on desktop so that its code is
# covered by the desktop DRM vendor's voucher.
if CONFIG['OS_TARGET'] != 'Android':
    SOURCES += [
        '../../dom/media/gmp/GMPLoader.cpp',
    ]
    USE_LIBS += [
        'rlz',
    ]

# DELAYLOAD_DLLS in this block ensures that the DLL blocklist is functional
if CONFIG['OS_ARCH'] == 'WINNT':
    DELAYLOAD_DLLS += [
        'nss3.dll',
    ]

    if CONFIG['MOZ_SANDBOX']:
        # For sandbox includes and the include dependencies those have
        LOCAL_INCLUDES += [
            '/security/sandbox/chromium',
            '/security/sandbox/chromium-shim',
        ]

        USE_LIBS += [
            'sandbox_s',
        ]

        DELAYLOAD_DLLS += [
            'winmm.dll',
            'user32.dll',
        ]

    DELAYLOAD_DLLS += [
        'xul.dll',
    ]

if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] in ('Linux', 'Android'):
    USE_LIBS += [
        'mozsandbox',
    ]

    # gcc lto likes to put the top level asm in syscall.cc in a different partition
    # from the function using it which breaks the build.  Work around that by
    # forcing there to be only one partition.
    if '-flto' in CONFIG['OS_CXXFLAGS'] and not CONFIG['CLANG_CXX']:
        LDFLAGS += ['--param lto-partitions=1']

if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] == 'Darwin':
    # For sandbox includes and the include dependencies those have
    LOCAL_INCLUDES += [
        '/security/sandbox/chromium',
        '/security/sandbox/chromium-shim',
    ]
    USE_LIBS += [
        'mozsandbox',
    ]

if CONFIG['_MSC_VER']:
    # Always enter a Windows program through wmain, whether or not we're
    # a console application.
    WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']

LDFLAGS += CONFIG['MOZ_ALLOW_HEAP_EXECUTE_FLAGS']

# Control the default heap size.
# This is the heap returned by GetProcessHeap().
# As we use the CRT heap, the default size is too large and wastes VM.
#
# The default heap size is 1MB on Win32.
# The heap will grow if need be.
#
# Set it to 256k.  See bug 127069.
if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
    LDFLAGS += ['/HEAP:0x40000']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
    OS_LIBS += [
        'binder',
        'utils',
    ]

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wshadow']

DEFINES['MOZ_PLUGIN_CONTAINER'] = 1;