# -*- 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", "MFBT") Library('mfbt') EXPORTS += [ '../third_party/rust/encoding_c_mem/include/encoding_rs_mem.h', ] EXPORTS.mozilla = [ 'Algorithm.h', 'Alignment.h', 'AllocPolicy.h', 'AlreadyAddRefed.h', 'Array.h', 'ArrayUtils.h', 'Assertions.h', 'Atomics.h', 'Attributes.h', 'BinarySearch.h', 'BloomFilter.h', 'Buffer.h', 'BufferList.h', 'Casting.h', 'ChaosMode.h', 'Char16.h', 'CheckedInt.h', 'CompactPair.h', 'Compiler.h', 'Compression.h', 'DbgMacro.h', 'DebugOnly.h', 'DefineEnum.h', 'DoublyLinkedList.h', 'EndianUtils.h', 'EnumeratedArray.h', 'EnumeratedRange.h', 'EnumSet.h', 'EnumTypeTraits.h', 'fallible.h', 'FastBernoulliTrial.h', 'FloatingPoint.h', 'FStream.h', 'FunctionRef.h', 'FunctionTypeTraits.h', 'GuardObjects.h', 'HashFunctions.h', 'HashTable.h', 'HelperMacros.h', 'InitializedOnce.h', 'IntegerPrintfMacros.h', 'IntegerRange.h', 'IntegerTypeTraits.h', 'JSONWriter.h', 'JsRust.h', 'Latin1.h', 'Likely.h', 'LinkedList.h', 'MacroArgs.h', 'MacroForEach.h', 'MathAlgorithms.h', 'Maybe.h', 'MaybeOneOf.h', 'MemoryChecking.h', 'MemoryReporting.h', 'NonDereferenceable.h', 'NotNull.h', 'Opaque.h', 'OperatorNewExtensions.h', 'Path.h', 'PodOperations.h', 'Poison.h', 'RandomNum.h', 'Range.h', 'RangedArray.h', 'RangedPtr.h', 'ReentrancyGuard.h', 'RefCounted.h', 'RefCountType.h', 'RefPtr.h', 'Result.h', 'ResultExtensions.h', 'ReverseIterator.h', 'RollingMean.h', 'Saturate.h', 'Scoped.h', 'ScopeExit.h', 'SegmentedVector.h', 'SHA1.h', 'SharedLibrary.h', 'SmallPointerArray.h', 'Span.h', 'SplayTree.h', 'Sprintf.h', 'SPSCQueue.h', 'StaticAnalysisFunctions.h', 'TaggedAnonymousMemory.h', 'Tainting.h', 'TemplateLib.h', 'TextUtils.h', 'ThreadLocal.h', 'ThreadSafeWeakPtr.h', 'ToString.h', 'Tuple.h', 'TypedEnumBits.h', 'Types.h', 'TypeTraits.h', 'UniquePtr.h', 'UniquePtrExtensions.h', 'Unused.h', 'Utf8.h', 'Variant.h', 'Vector.h', 'WeakPtr.h', 'WrappingOperations.h', 'XorShift128PlusRNG.h', ] EXPORTS["double-conversion"] = [ 'double-conversion/double-conversion/double-conversion.h', 'double-conversion/double-conversion/double-to-string.h', 'double-conversion/double-conversion/string-to-double.h', 'double-conversion/double-conversion/utils.h', ] LOCAL_INCLUDES += [ '/mfbt/double-conversion', ] if CONFIG['OS_ARCH'] == 'WINNT': EXPORTS.mozilla += [ 'WindowsVersion.h', ] elif CONFIG['OS_ARCH'] == 'Linux': EXPORTS.mozilla += [ 'LinuxSignal.h', ] if CONFIG['MOZ_TSAN']: EXPORTS.mozilla += [ 'TsanOptions.h', ] UNIFIED_SOURCES += [ 'Assertions.cpp', 'ChaosMode.cpp', 'double-conversion/double-conversion/bignum-dtoa.cc', 'double-conversion/double-conversion/bignum.cc', 'double-conversion/double-conversion/cached-powers.cc', 'double-conversion/double-conversion/double-to-string.cc', 'double-conversion/double-conversion/fast-dtoa.cc', 'double-conversion/double-conversion/fixed-dtoa.cc', 'double-conversion/double-conversion/string-to-double.cc', 'double-conversion/double-conversion/strtod.cc', 'FloatingPoint.cpp', 'HashFunctions.cpp', 'JSONWriter.cpp', 'Poison.cpp', 'RandomNum.cpp', 'SHA1.cpp', 'TaggedAnonymousMemory.cpp', 'UniquePtrExtensions.cpp', 'Unused.cpp', 'Utf8.cpp', ] if CONFIG['MOZ_BUILD_APP'] not in ('memory', 'tools/crashreporter', 'tools/update-packaging'): # Building MFBT tests adds a large overhead when building # tools/crashreporter. TEST_DIRS += ['tests'] DEFINES['IMPL_MFBT'] = True SOURCES += [ 'Compression.cpp', 'lz4/lz4.c', 'lz4/lz4frame.c', 'lz4/lz4hc.c', 'lz4/xxhash.c', ] DisableStlWrapping() if CONFIG['MOZ_NEEDS_LIBATOMIC']: OS_LIBS += ['atomic'] DEFINES['LZ4LIB_VISIBILITY'] = ''