summaryrefslogtreecommitdiffstats
path: root/mfbt/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'mfbt/moz.build')
-rw-r--r--mfbt/moz.build214
1 files changed, 214 insertions, 0 deletions
diff --git a/mfbt/moz.build b/mfbt/moz.build
new file mode 100644
index 0000000000..3a3ab46f71
--- /dev/null
+++ b/mfbt/moz.build
@@ -0,0 +1,214 @@
+# -*- 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",
+ "AtomicBitfields.h",
+ "Atomics.h",
+ "Attributes.h",
+ "BinarySearch.h",
+ "BitSet.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",
+ "Fuzzing.h",
+ "HashFunctions.h",
+ "HashTable.h",
+ "HelperMacros.h",
+ "InitializedOnce.h",
+ "IntegerRange.h",
+ "IntegerTypeTraits.h",
+ "JSONWriter.h",
+ "JsRust.h",
+ "Latin1.h",
+ "Likely.h",
+ "LinkedList.h",
+ "Literals.h",
+ "MacroArgs.h",
+ "MacroForEach.h",
+ "MathAlgorithms.h",
+ "Maybe.h",
+ "MaybeOneOf.h",
+ "MaybeStorageBase.h",
+ "MemoryChecking.h",
+ "MemoryReporting.h",
+ "MoveOnlyFunction.h",
+ "MruCache.h",
+ "NeverDestroyed.h",
+ "NonDereferenceable.h",
+ "NotNull.h",
+ "Opaque.h",
+ "OperatorNewExtensions.h",
+ "PairHash.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",
+ "ResultVariant.h",
+ "ReverseIterator.h",
+ "RollingMean.h",
+ "Saturate.h",
+ "ScopeExit.h",
+ "SegmentedVector.h",
+ "SHA1.h",
+ "SharedLibrary.h",
+ "SmallPointerArray.h",
+ "Span.h",
+ "SplayTree.h",
+ "SPSCQueue.h",
+ "StaticAnalysisFunctions.h",
+ "TaggedAnonymousMemory.h",
+ "Tainting.h",
+ "TemplateLib.h",
+ "TextUtils.h",
+ "ThreadLocal.h",
+ "ThreadSafety.h",
+ "ThreadSafeWeakPtr.h",
+ "ToString.h",
+ "Try.h",
+ "TypedEnumBits.h",
+ "Types.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",
+]
+
+EXPORTS.function2 += [
+ "/third_party/function2/include/function2/function2.hpp",
+]
+
+LOCAL_INCLUDES += [
+ "/mfbt/double-conversion",
+]
+
+if CONFIG["OS_ARCH"] == "WINNT":
+ EXPORTS.mozilla += [
+ "WindowsVersion.h",
+ ]
+
+if CONFIG["OS_ARCH"] == "WASI":
+ EXPORTS.mozilla += [
+ "WasiAtomic.h",
+ ]
+
+if CONFIG["MOZ_TSAN"]:
+ EXPORTS.mozilla += [
+ "TsanOptions.h",
+ ]
+
+UNIFIED_SOURCES += [
+ "Assertions.cpp",
+ "ChaosMode.cpp",
+ "Compression.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/update-programs",
+):
+ # Building MFBT tests adds a large overhead when building.
+ TEST_DIRS += ["tests"]
+
+DEFINES["IMPL_MFBT"] = True
+
+SOURCES += [
+ "lz4/lz4.c",
+ "lz4/lz4file.c",
+ "lz4/lz4frame.c",
+ "lz4/lz4hc.c",
+ "lz4/xxhash.c",
+]
+
+SOURCES["lz4/xxhash.c"].flags += ["-Wno-unused-function"]
+
+DisableStlWrapping()
+
+if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
+ OS_LIBS += ["atomic"]
+
+DEFINES["LZ4LIB_VISIBILITY"] = ""
+
+# This is kind of gross because this is not a subdirectory,
+# but pure_virtual requires mfbt to build and some projects
+# don't use mfbt.
+DIRS += ["../build/pure_virtual"]