summaryrefslogtreecommitdiff
path: root/ipc/app/moz.build
blob: 55c338cb89c9b6b22d30ed7ad672f5522cec1086 (plain)
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;