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")
|