summaryrefslogtreecommitdiffstats
path: root/security/certverifier/moz.build
blob: 97cff1f7d68ab658de6bc99dc653f087b2a34716 (plain)
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
# -*- 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/.

EXPORTS += [
    'BRNameMatchingPolicy.h',
    'CertVerifier.h',
    'CTVerifyResult.h',
    'OCSPCache.h',
    'SignedCertificateTimestamp.h',
    'SignedTreeHead.h',
]

UNIFIED_SOURCES += [
    'BRNameMatchingPolicy.cpp',
    'CertVerifier.cpp',
    'CTLogVerifier.cpp',
    'CTObjectsExtractor.cpp',
    'CTSerialization.cpp',
    'CTVerifyResult.cpp',
    'MultiLogCTVerifier.cpp',
    'NSSCertDBTrustDomain.cpp',
    'OCSPCache.cpp',
    'OCSPRequestor.cpp',
    'OCSPVerificationTrustDomain.cpp',
    'SignedCertificateTimestamp.cpp',
]

if not CONFIG['NSS_NO_EV_CERTS']:
    UNIFIED_SOURCES += [
        'ExtendedValidation.cpp',
    ]

LOCAL_INCLUDES += [
    '/security/manager/ssl',
    '/security/pkix/include',
    '/security/pkix/lib',
]

DIRS += [
    '../pkix',
]

TEST_DIRS += [
    'tests/gtest',
]

CXXFLAGS += ['-Wall']
if CONFIG['_MSC_VER']:
  # -Wall with Visual C++ enables too many problematic warnings
  CXXFLAGS += [
    '-wd4355', # 'this' used in base member initializer list
    '-wd4464', # relative include path contains '..'
    '-wd4480', # nonstandard extension used: specifying underlying type for
               # enum 'enum'
    '-wd4481', # nonstandard extension used: override specifier 'keyword'
    '-wd4510', # default constructor could not be generated
    '-wd4512', # assignment operator could not be generated
    '-wd4514', # 'function': unreferenced inline function has been removed
    '-wd4610', # struct 'symbol' can never be instantiated - user defined
               # constructor required
    '-wd4619', # pragma warning: there is no warning 'warning'
    '-wd4623', # default constructor could not be generated because a base
               # class default constructor is inaccessible or deleted
    '-wd4625', # copy constructor could not be generated because a base
               # class copy constructor is inaccessible or deleted
    '-wd4626', # assignment operator could not be generated because a base
               # class assignment operator is inaccessible or deleted
    '-wd4628', # digraphs not supported with -Ze (nsThreadUtils.h includes
               # what would be the digraph "<:" in the expression
               # "mozilla::EnableIf<::detail::...". Since we don't want it
               # interpreted as a digraph anyway, we can disable the
               # warning.)
    '-wd4640', # construction of local static object is not thread-safe
    '-wd4710', # 'function': function not inlined
    '-wd4711', # function 'function' selected for inline expansion
    '-wd4820', # 'bytes' bytes padding added after construct 'member_name'
  ]

  # MSVC 2010's headers trigger these
  CXXFLAGS += [
      '-wd4548', # expression before comma has no effect; ...
      '-wd4668', # 'symbol' is not defined as a preprocessor macro...
      '-wd4987', # nonstandard extension used
  ]

  # MSVC 2015 triggers these
  CXXFLAGS += [
      '-wd4456', # declaration of 'rv' hides previous local declaration
      '-wd4458', # declaration of 'input' hides class member
  ]

  # Gecko headers aren't warning-free enough for us to enable these warnings
  CXXFLAGS += [
    '-wd4100', # 'symbol' : unreferenced formal parameter
    '-wd4127', # conditional expression is constant
    '-wd4946', # reinterpret_cast used between related types
  ]

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

FINAL_LIBRARY = 'xul'