summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/defaultagent/moz.build
blob: c675da6e99ab5f697130606f626b6e18cd16ab2d (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
# -*- 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/.

Program("default-browser-agent")

SPHINX_TREES["default-browser-agent"] = "docs"

DIRS += ["rust"]

UNIFIED_SOURCES += [
    "/mfbt/Poison.cpp",
    "/mfbt/Unused.cpp",
    "Cache.cpp",
    "common.cpp",
    "DefaultBrowser.cpp",
    "DefaultPDF.cpp",
    "EventLog.cpp",
    "main.cpp",
    "Notification.cpp",
    "Policy.cpp",
    "Registry.cpp",
    "RemoteSettings.cpp",
    "ScheduledTask.cpp",
    "SetDefaultBrowser.cpp",
    "Telemetry.cpp",
    "UtfConvert.cpp",
]

SOURCES += [
    "/browser/components/shell/WindowsDefaultBrowser.cpp",
    "/browser/components/shell/WindowsUserChoice.cpp",
    "/other-licenses/nsis/Contrib/CityHash/cityhash/city.cpp",
    "/third_party/WinToast/wintoastlib.cpp",
    "/toolkit/mozapps/update/common/readstrings.cpp",
]

# Suppress warnings from third-party code.
SOURCES["/third_party/WinToast/wintoastlib.cpp"].flags += ["-Wno-implicit-fallthrough"]

USE_LIBS += [
    "defaultagent-static",
    "jsoncpp",
]

LOCAL_INCLUDES += [
    "/browser/components/shell/",
    "/mfbt/",
    "/other-licenses/nsis/Contrib/CityHash/cityhash",
    "/third_party/WinToast",
    "/toolkit/components/jsoncpp/include",
    "/toolkit/mozapps/update/common",
    "/xpcom/build",
]

OS_LIBS += [
    "advapi32",
    "bcrypt",
    "comsupp",
    "crypt32",
    "kernel32",
    "netapi32",
    "ole32",
    "oleaut32",
    "rpcrt4",
    "shell32",
    "shlwapi",
    "taskschd",
    "userenv",
    "wininet",
    "ws2_32",
    "ntdll",
]

DEFINES["NS_NO_XPCOM"] = True
DEFINES["IMPL_MFBT"] = True

DEFINES["UNICODE"] = True
DEFINES["_UNICODE"] = True

# If defines are added to this list that are required by the Cache,
# SetDefaultBrowser, or their dependencies (Registry, EventLog, common),
# tests/gtest/moz.build will need to be updated as well.
for var in ("MOZ_APP_BASENAME", "MOZ_APP_DISPLAYNAME", "MOZ_APP_VENDOR"):
    DEFINES[var] = '"%s"' % CONFIG[var]

# We need STL headers that aren't allowed when wrapping is on (at least
# <filesystem>, and possibly others).
DisableStlWrapping()

# We need this to be able to use wmain as the entry point on MinGW;
# otherwise it will try to use WinMain.
if CONFIG["CC_TYPE"] == "clang-cl":
    WIN32_EXE_LDFLAGS += ["-ENTRY:wmainCRTStartup"]
else:
    WIN32_EXE_LDFLAGS += ["-municode"]

GENERATED_FILES += ["defaultagent.ini"]
defaultagentini = GENERATED_FILES["defaultagent.ini"]
defaultagentini.script = "/browser/locales/generate_ini.py"
defaultagentini.inputs = [
    "defaultagent.ini",
    "defaultagent_append.ini",
]
FINAL_TARGET_FILES += ["!defaultagent.ini"]

if CONFIG["ENABLE_TESTS"]:
    DIRS += ["tests/gtest"]

with Files("**"):
    BUG_COMPONENT = ("Toolkit", "Default Browser Agent")