1# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2# vim: set filetype=python:
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7with Files("**"):
8    BUG_COMPONENT = ("Core", "Networking: DNS")
9
10DIRS += ["tests"]
11
12XPIDL_SOURCES += [
13    "nsIDNSByTypeRecord.idl",
14    "nsIDNSListener.idl",
15    "nsIDNSRecord.idl",
16    "nsIDNSResolverInfo.idl",
17    "nsIDNSService.idl",
18    "nsIEffectiveTLDService.idl",
19    "nsIIDNService.idl",
20    "nsINativeDNSResolverOverride.idl",
21    "nsPIDNSService.idl",
22]
23
24XPIDL_MODULE = "necko_dns"
25
26EXTRA_JS_MODULES["netwerk-dns"] += [
27    "PublicSuffixList.jsm",
28]
29
30XPCSHELL_TESTS_MANIFESTS += ["tests/unit/xpcshell.ini"]
31
32EXPORTS += [
33    "nsEffectiveTLDService.h",
34]
35
36EXPORTS.mozilla.net += [
37    "ChildDNSService.h",
38    "DNS.h",
39    "DNSByTypeRecord.h",
40    "DNSListenerProxy.h",
41    "DNSPacket.h",
42    "DNSRequestBase.h",
43    "DNSRequestChild.h",
44    "DNSRequestParent.h",
45    "HTTPSSVC.h",
46    "IDNBlocklistUtils.h",
47    "NativeDNSResolverOverrideChild.h",
48    "NativeDNSResolverOverrideParent.h",
49    "TRRService.h",
50    "TRRServiceBase.h",
51    "TRRServiceChild.h",
52    "TRRServiceParent.h",
53]
54
55SOURCES += [
56    "GetAddrInfo.cpp",  # Undefines UNICODE
57    "nsEffectiveTLDService.cpp",  # Excluded from UNIFIED_SOURCES due to special build flags.
58]
59
60UNIFIED_SOURCES += [
61    "ChildDNSService.cpp",
62    "DNS.cpp",
63    "DNSListenerProxy.cpp",
64    "DNSPacket.cpp",
65    "DNSRequestChild.cpp",
66    "DNSRequestParent.cpp",
67    "DNSResolverInfo.cpp",
68    "DNSServiceBase.cpp",
69    "DNSUtils.cpp",
70    "HostRecordQueue.cpp",
71    "HTTPSSVC.cpp",
72    "IDNBlocklistUtils.cpp",
73    "NativeDNSResolverOverrideChild.cpp",
74    "NativeDNSResolverOverrideParent.cpp",
75    "nsDNSService2.cpp",
76    "nsHostRecord.cpp",
77    "nsHostResolver.cpp",
78    "nsIDNService.cpp",
79    "ODoH.cpp",
80    "ODoHService.cpp",
81    "punycode.c",
82    "TRR.cpp",
83    "TRRQuery.cpp",
84    "TRRService.cpp",
85    "TRRServiceBase.cpp",
86    "TRRServiceChild.cpp",
87    "TRRServiceParent.cpp",
88]
89
90IPDL_SOURCES = [
91    "PDNSRequest.ipdl",
92    "PDNSRequestParams.ipdlh",
93    "PNativeDNSResolverOverride.ipdl",
94    "PTRRService.ipdl",
95]
96
97include("/ipc/chromium/chromium-config.mozbuild")
98
99FINAL_LIBRARY = "xul"
100
101GeneratedFile(
102    "etld_data.inc", script="prepare_tlds.py", inputs=["effective_tld_names.dat"]
103)
104
105if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
106    CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
107
108# need to include etld_data.inc
109LOCAL_INCLUDES += [
110    "/netwerk/base",
111    "/netwerk/ipc",
112    "/netwerk/protocol/http",
113]
114
115USE_LIBS += ["icu"]
116