summaryrefslogtreecommitdiffstats
path: root/mozglue/build/moz.build
blob: a68393740f999cdfa8e9a6b98f254a7a65f879b7 (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
115
116
117
118
119
120
121
122
123
124
125
126
127
# -*- 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/.

# Build mozglue as a shared lib on Windows, OSX and Android. But not for
# embedders!
# If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in
if CONFIG["JS_STANDALONE"] and not CONFIG["MOZ_MEMORY"]:
    Library("mozglue")
elif CONFIG["OS_TARGET"] in ("WINNT", "Darwin", "Android"):
    SharedLibrary("mozglue")
else:
    Library("mozglue")

if CONFIG["OS_TARGET"] == "Android":
    LDFLAGS += ["-Wl,--version-script,%s/mozglue.ver" % SRCDIR]
    SOURCES += [
        "BionicGlue.cpp",
    ]

if CONFIG["MOZ_ASAN"]:
    SOURCES += [
        "AsanOptions.cpp",
    ]

if CONFIG["MOZ_UBSAN"]:
    SOURCES += [
        "UbsanOptions.cpp",
    ]

if CONFIG["MOZ_TSAN"]:
    SOURCES += [
        "TsanOptions.cpp",
    ]

if CONFIG["OS_TARGET"] == "WINNT":
    if CONFIG["MOZ_MEMORY"]:
        DEFFILE = "mozglue.def"
    OS_LIBS += [
        "advapi32",
        "user32",
        "winmm",
        "uuid",
    ]
    # We'll break the DLL blocklist if we immediately load user32.dll.
    # For the same reason, we delayload these other DLLs to avoid eager
    # dependencies on user32.dll.
    DELAYLOAD_DLLS += [
        "advapi32.dll",
        "dbghelp.dll",
        "oleaut32.dll",
        "ole32.dll",
        "user32.dll",
        "version.dll",
        "winmm.dll",
    ]

if CONFIG["MOZ_WIDGET_TOOLKIT"]:

    if CONFIG["MOZ_MEMORY"] and FORCE_SHARED_LIB:
        pass
        # TODO: SHARED_LIBRARY_LIBS go here
    else:
        # Temporary, until bug 662814 lands
        NoVisibilityFlags()
        SOURCES += [
            "dummy.cpp",
        ]

    if CONFIG["OS_TARGET"] == "WINNT":
        LOCAL_INCLUDES += [
            "/memory/build",
        ]

    EXPORTS.mozilla += [
        "arm.h",
        "mips.h",
        "ppc.h",
    ]

    if CONFIG["CPU_ARCH"] == "arm":
        SOURCES += [
            "arm.cpp",
        ]

    if CONFIG["CPU_ARCH"].startswith("mips"):
        SOURCES += [
            "mips.cpp",
        ]

    if CONFIG["CPU_ARCH"].startswith("ppc"):
        SOURCES += [
            "ppc.cpp",
        ]

    if CONFIG["MOZ_LINKER"]:
        USE_LIBS += [
            "zlib",
        ]

USE_LIBS += [
    "mfbt",
]

if CONFIG["OS_ARCH"] == "WINNT":
    RCINCLUDE = "/mozglue/mozglue.rc"

    if not CONFIG["HAVE_64BIT_BUILD"]:
        EXPORTS += [
            "IAccessible32.manifest",
        ]

    EXPORTS += [
        "IAccessible64.manifest",
    ]

LIBRARY_DEFINES["IMPL_MFBT"] = True
LIBRARY_DEFINES["MOZ_HAS_MOZGLUE"] = True

if CONFIG["MOZ_LINKER"] and CONFIG["CPU_ARCH"] == "arm":
    LDFLAGS += ["-Wl,-version-script,%s/arm-eabi-filter" % SRCDIR]

DIST_INSTALL = True

include("replace_malloc.mozbuild")