summaryrefslogtreecommitdiff
path: root/mfbt/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'mfbt/moz.build')
-rw-r--r--mfbt/moz.build140
1 files changed, 140 insertions, 0 deletions
diff --git a/mfbt/moz.build b/mfbt/moz.build
new file mode 100644
index 0000000000..f23a3b6f5d
--- /dev/null
+++ b/mfbt/moz.build
@@ -0,0 +1,140 @@
+# -*- 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']
+
+# On win we build two mfbt libs - mfbt linked to crt dlls here and in
+# staticruntime we build a statically linked mfbt lib.
+if CONFIG['OS_ARCH'] == 'WINNT':
+ DIRS += ['staticruntime']
+
+Library('mfbt')
+
+EXPORTS.mozilla = [
+ 'Alignment.h',
+ 'AllocPolicy.h',
+ 'AlreadyAddRefed.h',
+ 'Array.h',
+ 'ArrayUtils.h',
+ 'Assertions.h',
+ 'Atomics.h',
+ 'Attributes.h',
+ 'BinarySearch.h',
+ 'BloomFilter.h',
+ 'BufferList.h',
+ 'Casting.h',
+ 'ChaosMode.h',
+ 'Char16.h',
+ 'CheckedInt.h',
+ 'Compiler.h',
+ 'Compression.h',
+ 'DebugOnly.h',
+ 'decimal/Decimal.h',
+ 'double-conversion/double-conversion.h',
+ 'double-conversion/utils.h',
+ 'EndianUtils.h',
+ 'EnumeratedArray.h',
+ 'EnumeratedRange.h',
+ 'EnumSet.h',
+ 'EnumTypeTraits.h',
+ 'FastBernoulliTrial.h',
+ 'FloatingPoint.h',
+ 'Function.h',
+ 'GuardObjects.h',
+ 'HashFunctions.h',
+ 'IndexSequence.h',
+ 'IntegerPrintfMacros.h',
+ 'IntegerRange.h',
+ 'IntegerTypeTraits.h',
+ 'JSONWriter.h',
+ 'Likely.h',
+ 'LinkedList.h',
+ 'MacroArgs.h',
+ 'MacroForEach.h',
+ 'MathAlgorithms.h',
+ 'Maybe.h',
+ 'MaybeOneOf.h',
+ 'MemoryChecking.h',
+ 'MemoryReporting.h',
+ 'Move.h',
+ 'NotNull.h',
+ 'NullPtr.h',
+ 'Opaque.h',
+ 'OperatorNewExtensions.h',
+ 'Pair.h',
+ 'PodOperations.h',
+ 'Poison.h',
+ 'Range.h',
+ 'RangedArray.h',
+ 'RangedPtr.h',
+ 'ReentrancyGuard.h',
+ 'RefCounted.h',
+ 'RefCountType.h',
+ 'RefPtr.h',
+ 'ReverseIterator.h',
+ 'RollingMean.h',
+ 'Saturate.h',
+ 'Scoped.h',
+ 'ScopeExit.h',
+ 'SegmentedVector.h',
+ 'SHA1.h',
+ 'SizePrintfMacros.h',
+ 'SplayTree.h',
+ 'Sprintf.h',
+ 'StaticAnalysisFunctions.h',
+ 'TaggedAnonymousMemory.h',
+ 'TemplateLib.h',
+ 'ThreadLocal.h',
+ 'ToString.h',
+ 'Tuple.h',
+ 'TypedEnumBits.h',
+ 'Types.h',
+ 'TypeTraits.h',
+ 'UniquePtr.h',
+ 'UniquePtrExtensions.h',
+ 'Unused.h',
+ 'Variant.h',
+ 'Vector.h',
+ 'WeakPtr.h',
+ 'XorShift128PlusRNG.h',
+]
+
+if CONFIG['OS_ARCH'] == 'WINNT':
+ EXPORTS.mozilla += [
+ 'WindowsVersion.h',
+ ]
+elif CONFIG['OS_ARCH'] == 'Linux':
+ EXPORTS.mozilla += [
+ 'LinuxSignal.h',
+ ]
+
+include('objs.mozbuild')
+
+UNIFIED_SOURCES += mfbt_src_cppsrcs
+
+DEFINES['IMPL_MFBT'] = True
+
+SOURCES += mfbt_nonunified_src_cppsrcs
+
+DISABLE_STL_WRAPPING = True
+
+# Suppress warnings in third-party LZ4 code.
+# TODO: Remove these suppressions after bug 993267 is fixed.
+
+if CONFIG['GNU_CXX']:
+ SOURCES['/mfbt/Compression.cpp'].flags += ['-Wno-unused-function']
+ CXXFLAGS += ['-Wno-error=shadow']
+
+if CONFIG['CLANG_CXX']:
+ # Suppress warnings from third-party V8 Decimal code.
+ SOURCES['/mfbt/decimal/Decimal.cpp'].flags += ['-Wno-implicit-fallthrough']
+
+if CONFIG['_MSC_VER']:
+ # Error 4804 is "'>' : unsafe use of type 'bool' in operation"
+ SOURCES['/mfbt/Compression.cpp'].flags += ['-wd4804']
+
+if CONFIG['MOZ_NEEDS_LIBATOMIC']:
+ OS_LIBS += ['atomic']