Blob Blame History Raw
# -*- 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/.

TEST_DIRS += [ 'tests' ]

XPIDL_SOURCES += [
    'nsIASN1Object.idl',
    'nsIASN1PrintableItem.idl',
    'nsIASN1Sequence.idl',
    'nsIAssociatedContentSecurity.idl',
    'nsIBadCertListener2.idl',
    'nsICertBlocklist.idl',
    'nsICertificateDialogs.idl',
    'nsICertOverrideService.idl',
    'nsIClientAuthDialogs.idl',
    'nsIContentSignatureVerifier.idl',
    'nsICryptoHash.idl',
    'nsICryptoHMAC.idl',
    'nsIDataSignatureVerifier.idl',
    'nsIGenKeypairInfoDlg.idl',
    'nsIKeygenThread.idl',
    'nsIKeyModule.idl',
    'nsILocalCertService.idl',
    'nsINSSErrorsService.idl',
    'nsINSSVersion.idl',
    'nsIPK11Token.idl',
    'nsIPK11TokenDB.idl',
    'nsIPKCS11Module.idl',
    'nsIPKCS11ModuleDB.idl',
    'nsIPKCS11Slot.idl',
    'nsIProtectedAuthThread.idl',
    'nsISecretDecoderRing.idl',
    'nsISecurityUITelemetry.idl',
    'nsISiteSecurityService.idl',
    'nsISSLStatus.idl',
    'nsISSLStatusProvider.idl',
    'nsITokenDialogs.idl',
    'nsITokenPasswordDialogs.idl',
    'nsIX509Cert.idl',
    'nsIX509CertDB.idl',
    'nsIX509CertList.idl',
    'nsIX509CertValidity.idl',
]

if CONFIG['MOZ_XUL']:
    XPIDL_SOURCES += [
        'nsICertTree.idl',
    ]

XPIDL_MODULE = 'pipnss'

# These aren't actually used in production code yet, so we don't want to
# ship them with the browser.
TESTING_JS_MODULES.psm += [
    'DER.jsm',
    'X509.jsm',
]

EXPORTS += [
    'CryptoTask.h',
    'nsClientAuthRemember.h',
    'nsNSSCallbacks.h',
    'nsNSSCertificate.h',
    'nsNSSComponent.h',
    'nsNSSHelper.h',
    'nsRandomGenerator.h',
    'nsSecurityHeaderParser.h',
    'NSSErrorsService.h',
    'ScopedNSSTypes.h',
    'SharedCertVerifier.h',
]

EXPORTS.mozilla += [
    'DataStorage.h',
    'DataStorageList.h',
    'PublicSSL.h',
]

EXPORTS.mozilla.psm += [
    'PSMContentListener.h',
]

EXPORTS.ipc += [
    'DataStorageIPCUtils.h',
]

UNIFIED_SOURCES += [
    'CertBlocklist.cpp',
    'ContentSignatureVerifier.cpp',
    'CryptoTask.cpp',
    'CSTrustDomain.cpp',
    'DataStorage.cpp',
    'LocalCertService.cpp',
    'nsCertOverrideService.cpp',
    'nsClientAuthRemember.cpp',
    'nsCryptoHash.cpp',
    'nsDataSignatureVerifier.cpp',
    'nsKeygenHandler.cpp',
    'nsKeygenHandlerContent.cpp',
    'nsKeygenThread.cpp',
    'nsKeyModule.cpp',
    'nsNSSASN1Object.cpp',
    'nsNSSCallbacks.cpp',
    'nsNSSCertHelper.cpp',
    'nsNSSCertificate.cpp',
    'nsNSSCertificateDB.cpp',
    'nsNSSCertTrust.cpp',
    'nsNSSCertValidity.cpp',
    'nsNSSComponent.cpp',
    'nsNSSErrors.cpp',
    'nsNSSIOLayer.cpp',
    'nsNSSModule.cpp',
    'nsNSSVersion.cpp',
    'nsNTLMAuthModule.cpp',
    'nsPK11TokenDB.cpp',
    'nsPKCS11Slot.cpp',
    'nsPKCS12Blob.cpp',
    'nsProtectedAuthThread.cpp',
    'nsRandomGenerator.cpp',
    'nsSecureBrowserUIImpl.cpp',
    'nsSecurityHeaderParser.cpp',
    'NSSErrorsService.cpp',
    'nsSiteSecurityService.cpp',
    'nsSSLSocketProvider.cpp',
    'nsSSLStatus.cpp',
    'nsTLSSocketProvider.cpp',
    'PKCS11ModuleDB.cpp',
    'PSMContentListener.cpp',
    'PSMRunnable.cpp',
    'PublicKeyPinningService.cpp',
    'RootCertificateTelemetryUtils.cpp',
    'SecretDecoderRing.cpp',
    'SharedSSLState.cpp',
    'SSLServerCertVerification.cpp',
    'TransportSecurityInfo.cpp',
]

IPDL_SOURCES += [
    'PPSMContentDownloader.ipdl',
]

if CONFIG['MOZ_XUL']:
    UNIFIED_SOURCES += [
        'nsCertTree.cpp',
    ]

UNIFIED_SOURCES += [
    'md4.c',
]

FINAL_LIBRARY = 'xul'

LOCAL_INCLUDES += [
    '/dom/base',
    '/dom/crypto',
    '/security/certverifier',
    '/security/pkix/include',
]

LOCAL_INCLUDES += [
    '!/dist/public/nss',
]

GENERATED_FILES = [
    'nsSTSPreloadList.h',
]
dafsa_data = GENERATED_FILES['nsSTSPreloadList.h']
dafsa_data.script = '../../../xpcom/ds/make_dafsa.py'
dafsa_data.inputs = ['nsSTSPreloadList.inc']

if CONFIG['NSS_DISABLE_DBM']:
    DEFINES['NSS_DISABLE_DBM'] = '1'

DEFINES['SSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES'] = 'True'
DEFINES['NSS_ENABLE_ECC'] = 'True'
for var in ('DLL_PREFIX', 'DLL_SUFFIX'):
    DEFINES[var] = '"%s"' % CONFIG[var]

if not CONFIG['MOZ_SYSTEM_NSS']:
    USE_LIBS += [
        'crmf',
    ]

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

if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
    CXXFLAGS += [
        '-Wextra',
        # -Wextra enables this warning, but it's too noisy to be useful.
        '-Wno-missing-field-initializers',
    ]

    # Gecko headers aren't warning-free enough for us to enable these warnings.
    CXXFLAGS += [
        '-Wno-unused-parameter',
    ]