Backed out 2 changesets (bug 1855531) for causing bustages on HTMLVideoElementBinding...
[gecko.git] / mfbt / moz.build
blob3d5b7bcee997fc3ee17f8284826133af6a488f68
1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2 # vim: set filetype=python:
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 with Files("**"):
8     BUG_COMPONENT = ("Core", "MFBT")
10 Library("mfbt")
12 EXPORTS += [
13     "../third_party/rust/encoding_c_mem/include/encoding_rs_mem.h",
16 EXPORTS.mozilla = [
17     "Algorithm.h",
18     "Alignment.h",
19     "AllocPolicy.h",
20     "AlreadyAddRefed.h",
21     "Array.h",
22     "ArrayUtils.h",
23     "Assertions.h",
24     "AtomicBitfields.h",
25     "Atomics.h",
26     "Attributes.h",
27     "BinarySearch.h",
28     "BitSet.h",
29     "BloomFilter.h",
30     "Buffer.h",
31     "BufferList.h",
32     "Casting.h",
33     "ChaosMode.h",
34     "Char16.h",
35     "CheckedInt.h",
36     "CompactPair.h",
37     "Compiler.h",
38     "Compression.h",
39     "DbgMacro.h",
40     "DebugOnly.h",
41     "DefineEnum.h",
42     "DoublyLinkedList.h",
43     "EndianUtils.h",
44     "EnumeratedArray.h",
45     "EnumeratedRange.h",
46     "EnumSet.h",
47     "EnumTypeTraits.h",
48     "fallible.h",
49     "FastBernoulliTrial.h",
50     "FloatingPoint.h",
51     "FStream.h",
52     "FunctionRef.h",
53     "FunctionTypeTraits.h",
54     "Fuzzing.h",
55     "HashFunctions.h",
56     "HashTable.h",
57     "HelperMacros.h",
58     "InitializedOnce.h",
59     "IntegerRange.h",
60     "IntegerTypeTraits.h",
61     "JSONWriter.h",
62     "JsRust.h",
63     "Latin1.h",
64     "Likely.h",
65     "LinkedList.h",
66     "MacroArgs.h",
67     "MacroForEach.h",
68     "MathAlgorithms.h",
69     "Maybe.h",
70     "MaybeOneOf.h",
71     "MaybeStorageBase.h",
72     "MemoryChecking.h",
73     "MemoryReporting.h",
74     "MoveOnlyFunction.h",
75     "MruCache.h",
76     "NeverDestroyed.h",
77     "NonDereferenceable.h",
78     "NotNull.h",
79     "Opaque.h",
80     "OperatorNewExtensions.h",
81     "PairHash.h",
82     "Path.h",
83     "PodOperations.h",
84     "Poison.h",
85     "RandomNum.h",
86     "Range.h",
87     "RangedArray.h",
88     "RangedPtr.h",
89     "ReentrancyGuard.h",
90     "RefCounted.h",
91     "RefCountType.h",
92     "RefPtr.h",
93     "Result.h",
94     "ResultExtensions.h",
95     "ResultVariant.h",
96     "ReverseIterator.h",
97     "RollingMean.h",
98     "Saturate.h",
99     "Scoped.h",
100     "ScopeExit.h",
101     "SegmentedVector.h",
102     "SHA1.h",
103     "SharedLibrary.h",
104     "SmallPointerArray.h",
105     "Span.h",
106     "SplayTree.h",
107     "SPSCQueue.h",
108     "StaticAnalysisFunctions.h",
109     "TaggedAnonymousMemory.h",
110     "Tainting.h",
111     "TemplateLib.h",
112     "TextUtils.h",
113     "ThreadLocal.h",
114     "ThreadSafety.h",
115     "ThreadSafeWeakPtr.h",
116     "ToString.h",
117     "TypedEnumBits.h",
118     "Types.h",
119     "UniquePtr.h",
120     "UniquePtrExtensions.h",
121     "Unused.h",
122     "Utf8.h",
123     "Variant.h",
124     "Vector.h",
125     "WeakPtr.h",
126     "WrappingOperations.h",
127     "XorShift128PlusRNG.h",
130 EXPORTS["double-conversion"] = [
131     "double-conversion/double-conversion/double-conversion.h",
132     "double-conversion/double-conversion/double-to-string.h",
133     "double-conversion/double-conversion/string-to-double.h",
134     "double-conversion/double-conversion/utils.h",
137 EXPORTS.function2 += [
138     "/third_party/function2/include/function2/function2.hpp",
141 LOCAL_INCLUDES += [
142     "/mfbt/double-conversion",
145 if CONFIG["OS_ARCH"] == "WINNT":
146     EXPORTS.mozilla += [
147         "WindowsVersion.h",
148     ]
150 if CONFIG["OS_ARCH"] == "WASI":
151     EXPORTS.mozilla += [
152         "WasiAtomic.h",
153     ]
155 if CONFIG["MOZ_TSAN"]:
156     EXPORTS.mozilla += [
157         "TsanOptions.h",
158     ]
160 UNIFIED_SOURCES += [
161     "Assertions.cpp",
162     "ChaosMode.cpp",
163     "Compression.cpp",
164     "double-conversion/double-conversion/bignum-dtoa.cc",
165     "double-conversion/double-conversion/bignum.cc",
166     "double-conversion/double-conversion/cached-powers.cc",
167     "double-conversion/double-conversion/double-to-string.cc",
168     "double-conversion/double-conversion/fast-dtoa.cc",
169     "double-conversion/double-conversion/fixed-dtoa.cc",
170     "double-conversion/double-conversion/string-to-double.cc",
171     "double-conversion/double-conversion/strtod.cc",
172     "FloatingPoint.cpp",
173     "HashFunctions.cpp",
174     "JSONWriter.cpp",
175     "Poison.cpp",
176     "RandomNum.cpp",
177     "SHA1.cpp",
178     "TaggedAnonymousMemory.cpp",
179     "UniquePtrExtensions.cpp",
180     "Unused.cpp",
181     "Utf8.cpp",
184 if CONFIG["MOZ_BUILD_APP"] not in (
185     "memory",
186     "tools/update-programs",
188     # Building MFBT tests adds a large overhead when building.
189     TEST_DIRS += ["tests"]
191 DEFINES["IMPL_MFBT"] = True
193 SOURCES += [
194     "lz4/lz4.c",
195     "lz4/lz4file.c",
196     "lz4/lz4frame.c",
197     "lz4/lz4hc.c",
198     "lz4/xxhash.c",
201 SOURCES["lz4/xxhash.c"].flags += ["-Wno-unused-function"]
203 DisableStlWrapping()
205 if CONFIG["MOZ_NEEDS_LIBATOMIC"]:
206     OS_LIBS += ["atomic"]
208 DEFINES["LZ4LIB_VISIBILITY"] = ""
210 # This is kind of gross because this is not a subdirectory,
211 # but pure_virtual requires mfbt to build and some projects
212 # don't use mfbt.
213 DIRS += ["../build/pure_virtual"]