# -*- 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/.

DIRS += [
    'mdns',
]

XPIDL_SOURCES += [
    'nsIDNSListener.idl',
    'nsIDNSRecord.idl',
    'nsIDNSService.idl',
    'nsIEffectiveTLDService.idl',
    'nsIIDNService.idl',
    'nsPIDNSService.idl',
]

XPIDL_MODULE = 'necko_dns'

EXPORTS.mozilla.net += [
    'ChildDNSService.h',
    'DNS.h',
    'DNSListenerProxy.h',
    'DNSRequestChild.h',
    'DNSRequestParent.h',
    'PDNSParams.h',
]

SOURCES += [
    'nsEffectiveTLDService.cpp', # Excluded from UNIFIED_SOURCES due to special build flags.
    'nsHostResolver.cpp', # Redefines LOG
]

UNIFIED_SOURCES += [
    'ChildDNSService.cpp',
    'DNS.cpp',
    'DNSListenerProxy.cpp',
    'DNSRequestChild.cpp',
    'DNSRequestParent.cpp',
    'GetAddrInfo.cpp',
    'nsDNSService2.cpp',
    'nsIDNService.cpp',
    'punycode.c',
]

IPDL_SOURCES = [
    'PDNSRequest.ipdl',
    'PDNSRequestParams.ipdlh',
]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

GENERATED_FILES = [
    'etld_data.inc',
]
etld_data = GENERATED_FILES['etld_data.inc']
etld_data.script = 'prepare_tlds.py'
etld_data.inputs = ['effective_tld_names.dat']

# need to include etld_data.inc
LOCAL_INCLUDES += [
    '/netwerk/base',
]

if CONFIG['ENABLE_INTL_API']:
    DEFINES['IDNA2008'] = True
    USE_LIBS += ['icu']
else:
    UNIFIED_SOURCES += [
        'nameprep.c',
    ]

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wno-error=shadow']