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
7DIRS += [
8    'mdns',
9]
10
11XPIDL_SOURCES += [
12    'nsIDNSListener.idl',
13    'nsIDNSRecord.idl',
14    'nsIDNSService.idl',
15    'nsIEffectiveTLDService.idl',
16    'nsIIDNService.idl',
17    'nsPIDNSService.idl',
18]
19
20XPIDL_MODULE = 'necko_dns'
21
22EXPORTS.mozilla.net += [
23    'ChildDNSService.h',
24    'DNS.h',
25    'DNSListenerProxy.h',
26    'DNSRequestChild.h',
27    'DNSRequestParent.h',
28    'PDNSParams.h',
29]
30
31SOURCES += [
32    'nsEffectiveTLDService.cpp', # Excluded from UNIFIED_SOURCES due to special build flags.
33    'nsHostResolver.cpp', # Redefines LOG
34]
35
36UNIFIED_SOURCES += [
37    'ChildDNSService.cpp',
38    'DNS.cpp',
39    'DNSListenerProxy.cpp',
40    'DNSRequestChild.cpp',
41    'DNSRequestParent.cpp',
42    'GetAddrInfo.cpp',
43    'nsDNSService2.cpp',
44    'nsIDNService.cpp',
45    'punycode.c',
46]
47
48IPDL_SOURCES = [
49    'PDNSRequest.ipdl',
50    'PDNSRequestParams.ipdlh',
51]
52
53include('/ipc/chromium/chromium-config.mozbuild')
54
55FINAL_LIBRARY = 'xul'
56
57GENERATED_FILES = [
58    'etld_data.inc',
59]
60etld_data = GENERATED_FILES['etld_data.inc']
61etld_data.script = 'prepare_tlds.py'
62etld_data.inputs = ['effective_tld_names.dat']
63
64# need to include etld_data.inc
65LOCAL_INCLUDES += [
66    '/netwerk/base',
67]
68
69if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
70    CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
71
72if CONFIG['ENABLE_INTL_API']:
73    DEFINES['IDNA2008'] = True
74    USE_LIBS += ['icu']
75else:
76    UNIFIED_SOURCES += [
77        'nameprep.c',
78    ]
79
80if CONFIG['GNU_CXX']:
81    CXXFLAGS += ['-Wno-error=shadow']
82