# -*- 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/. with Files("**"): BUG_COMPONENT = ("Core", "Security: PSM") EXPORTS += [ 'BTTypes.h', 'BTVerifier.h', 'Buffer.h', 'CTLog.h', 'CTPolicyEnforcer.h', 'CTVerifyResult.h', 'SignedCertificateTimestamp.h', ] UNIFIED_SOURCES += [ 'BTVerifier.cpp', 'Buffer.cpp', 'CTDiversityPolicy.cpp', 'CTLogVerifier.cpp', 'CTObjectsExtractor.cpp', 'CTPolicyEnforcer.cpp', 'CTSerialization.cpp', 'CTVerifyResult.cpp', 'MultiLogCTVerifier.cpp', 'SignedCertificateTimestamp.cpp', ] TEST_DIRS += [ 'tests/gtest', ] if not CONFIG['MOZ_DEBUG']: DEFINES['NDEBUG'] = True if CONFIG['CC_TYPE'] == 'clang-cl': # -Wall on clang-cl maps to -Weverything, which turns on way too # much, so we're passing through -Wall using -Xclang. CXXFLAGS += ['-Xclang'] CXXFLAGS += ['-Wall'] if CONFIG['CC_TYPE'] == 'msvc': # -Wall with Visual C++ enables too many problematic warnings CXXFLAGS += [ '-wd4324', # structure was padded due to __declspec(align()) '-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 '-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' ] # Disable Spectre diagnostics only if optimization is disabled. if not CONFIG['MOZ_OPTIMIZE']: CXXFLAGS += [ '-wd5045', # Compiler will insert Spectre mitigation for memory # load if /Qspectre switch specified ] # 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 ] # The following warnings are disabled because MSVC 2017 headers aren't # warning free at the -Wall level. CXXFLAGS += [ '-wd4061', # enumerator 'identifier' in switch of enum 'enumeration' is # not explicitly handled by a case label '-wd4365', # 'action' : conversion from 'type_1' to 'type_2', # signed/unsigned mismatch '-wd4774', # '' : format string expected in argument # is not a string literal ] # 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['CC_TYPE'] in ('clang', 'clang-cl', 'gcc'): CXXFLAGS += [ '-Wextra', '-Wunreachable-code', ] # Gecko headers aren't warning-free enough for us to enable these warnings. CXXFLAGS += [ '-Wno-unused-parameter', ] FINAL_LIBRARY = 'xul' if CONFIG['CC_TYPE'] == 'clang-cl': AllowCompilerWarnings() # workaround for bug 1090497