diff options
Diffstat (limited to 'mfbt/moz.build')
-rw-r--r-- | mfbt/moz.build | 214 |
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"] |