summaryrefslogtreecommitdiffstats
path: root/modules/libmar/tool/moz.build
blob: b2772544d50d1e35391ed766bf0433a5292f7e72 (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
# -*- 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/.

HOST_SOURCES += [
    "/other-licenses/nsis/Contrib/CityHash/cityhash/city.cpp",
    "mar.c",
]

HostProgram("mar")

HOST_USE_LIBS += [
    "hostmar",
]

if CONFIG["HOST_OS_ARCH"] == "WINNT":
    HOST_OS_LIBS += [
        "ws2_32",
    ]

# C11 for static_assert
c11_flags = ["-std=gnu11"]
if CONFIG["CC_TYPE"] == "clang-cl":
    c11_flags.insert(0, "-Xclang")
HOST_CFLAGS += c11_flags

HOST_DEFINES["NO_SIGN_VERIFY"] = True

if CONFIG["MOZ_BUILD_APP"] != "tools/update-packaging":
    Program("signmar")

    SOURCES += HOST_SOURCES

    CFLAGS += c11_flags

    USE_LIBS += [
        "mar",
        "nspr",
        "nss",
        "signmar",
        "verifymar",
    ]

    if CONFIG["MOZ_USE_NSS_FOR_MAR"]:
        DEFINES["MAR_NSS"] = True

    if CONFIG["OS_ARCH"] == "WINNT":
        USE_STATIC_LIBS = True

        OS_LIBS += [
            "ws2_32",
        ]
        if not CONFIG["MOZ_USE_NSS_FOR_MAR"]:
            OS_LIBS += [
                "crypt32",
                "advapi32",
            ]
    elif CONFIG["OS_ARCH"] == "Darwin" and not CONFIG["MOZ_USE_NSS_FOR_MAR"]:
        OS_LIBS += [
            "-framework CoreFoundation",
            "-framework Security",
        ]

    DisableStlWrapping()


for var in ("MAR_CHANNEL_ID", "MOZ_APP_VERSION"):
    HOST_DEFINES[var] = '"%s"' % CONFIG[var]
    if SOURCES:
        DEFINES[var] = HOST_DEFINES[var]