GC constraint solving should be parallel
[WebKit-https.git] / Source / WTF / wtf / CMakeLists.txt
1 set(WTF_HEADERS
2     ASCIICType.h
3     Assertions.h
4     Atomics.h
5     AutomaticThread.h
6     BackwardsGraph.h
7     Bag.h
8     BagToHashMap.h
9     BitVector.h
10     Bitmap.h
11     Brigand.h
12     BubbleSort.h
13     BumpPointerAllocator.h
14     ByteOrder.h
15     CPUTime.h
16     CagedPtr.h
17     CagedUniquePtr.h
18     ClockType.h
19     CompilationThread.h
20     Compiler.h
21     ConcurrentPtrHashSet.h
22     Condition.h
23     CountingLock.h
24     CrossThreadCopier.h
25     CrossThreadTask.h
26     CrossThreadTaskHandler.h
27     CryptographicUtilities.h
28     CryptographicallyRandomNumber.h
29     CurrentTime.h
30     DataLog.h
31     DateMath.h
32     Dominators.h
33     DecimalNumber.h
34     DeferrableRefCounted.h
35     Deque.h
36     DisallowCType.h
37     DoublyLinkedList.h
38     FastMalloc.h
39     FastTLS.h
40     FeatureDefines.h
41     FilePrintStream.h
42     FlipBytes.h
43     Forward.h
44     FunctionDispatcher.h
45     GetPtr.h
46     Gigacage.h
47     GlobalVersion.h
48     GraphNodeWorklist.h
49     GregorianDateTime.h
50     HashCountedSet.h
51     Hasher.h
52     HashFunctions.h
53     HashIterators.h
54     HashMap.h
55     HashMethod.h
56     HashSet.h
57     HashTable.h
58     HashTraits.h
59     HexNumber.h
60     IndexMap.h
61     IndexSet.h
62     IndexSparseSet.h
63     IndexedContainerIterator.h
64     IteratorAdaptors.h
65     IteratorRange.h
66     JSONValues.h
67     Language.h
68     ListHashSet.h
69     Liveness.h
70     Lock.h
71     LockAlgorithmInlines.h
72     LockAlgorithm.h
73     LockedPrintStream.h
74     Locker.h
75     LocklessBag.h
76     LoggingHashID.h
77     LoggingHashMap.h
78     LoggingHashSet.h
79     LoggingHashTraits.h
80     MD5.h
81     MainThread.h
82     MallocPtr.h
83     MathExtras.h
84     MediaTime.h
85     MemoryFootprint.h
86     MemoryPressureHandler.h
87     MessageQueue.h
88     MetaAllocator.h
89     MetaAllocatorHandle.h
90     NaturalLoops.h
91     MonotonicTime.h
92     Noncopyable.h
93     NumberOfCores.h
94     OSAllocator.h
95     OSRandomSource.h
96     OptionSet.h
97     OrderMaker.h
98     PageAllocation.h
99     PageBlock.h
100     PageReservation.h
101     ParallelHelperPool.h
102     ParallelJobs.h
103     ParallelJobsGeneric.h
104     ParallelJobsLibdispatch.h
105     ParallelJobsOpenMP.h
106     ParallelVectorIterator.h
107     ParkingLot.h
108     Platform.h
109     PlatformRegisters.h
110     PrintStream.h
111     ProcessID.h
112     RAMSize.h
113     RandomDevice.h
114     RandomNumber.h
115     RandomNumberSeed.h
116     Range.h
117     RangeSet.h
118     RawPointer.h
119     ReadWriteLock.h
120     RecursiveLockAdapter.h
121     RedBlackTree.h
122     Ref.h
123     RefCounted.h
124     RefCountedLeakCounter.h
125     RefCounter.h
126     RefPtr.h
127     RetainPtr.h
128     RunLoop.h
129     SHA1.h
130     SharedTask.h
131     SaturatedArithmetic.h
132     ScopedLambda.h
133     ScrambledPtr.h
134     Seconds.h
135     SegmentedVector.h
136     SmallPtrSet.h
137     StackBounds.h
138     StackShot.h
139     StackShotProfiler.h
140     StackStats.h
141     StackTrace.h
142     StdLibExtras.h
143     Stopwatch.h
144     StringExtras.h
145     StringPrintStream.h
146     SystemFree.h
147     SystemTracing.h
148     ThreadGroup.h
149     ThreadMessage.h
150     ThreadSafeRefCounted.h
151     ThreadSpecific.h
152     Threading.h
153     ThreadingPrimitives.h
154     TimeWithDynamicClockType.h
155     TimingScope.h
156     TinyPtrSet.h
157     UUID.h
158     UniqueRef.h
159     VMTags.h
160     ValueCheck.h
161     Variant.h
162     Vector.h
163     VectorTraits.h
164     WallTime.h
165     WeakPtr.h
166     WordLock.h
167     WorkQueue.h
168     dtoa.h
169
170     dtoa/bignum-dtoa.h
171     dtoa/bignum.h
172     dtoa/cached-powers.h
173     dtoa/diy-fp.h
174     dtoa/double-conversion.h
175     dtoa/double.h
176     dtoa/fast-dtoa.h
177     dtoa/fixed-dtoa.h
178     dtoa/strtod.h
179     dtoa/utils.h
180
181     text/AtomicString.h
182     text/AtomicStringImpl.h
183     text/AtomicStringTable.h
184     text/Base64.h
185     text/CString.h
186     text/IntegerToStringConversion.h
187     text/LChar.h
188     text/LineEnding.h
189     text/LineBreakIteratorPoolICU.h
190     text/StringBuffer.h
191     text/StringCommon.h
192     text/StringHash.h
193     text/StringHasher.h
194     text/StringImpl.h
195     text/StringMalloc.h
196     text/StringVector.h
197     text/StringView.h
198     text/SymbolImpl.h
199     text/SymbolRegistry.h
200     text/TextBreakIterator.h
201     text/TextBreakIteratorInternalICU.h
202     text/TextStream.h
203     text/UniquedStringImpl.h
204     text/ValueToString.h
205     text/WTFString.h
206
207     text/icu/UTextProvider.h
208     text/icu/UTextProviderLatin1.h
209     text/icu/UTextProviderUTF16.h
210
211     threads/BinarySemaphore.h
212     threads/Signals.h
213
214     unicode/CharacterNames.h
215     unicode/Collator.h
216     unicode/UTF8.h
217 )
218
219 set(WTF_SOURCES
220     Assertions.cpp
221     Atomics.cpp
222     AutomaticThread.cpp
223     BitVector.cpp
224     CPUTime.cpp
225     ClockType.cpp
226     CompilationThread.cpp
227     ConcurrentPtrHashSet.cpp
228     CountingLock.cpp
229     CrossThreadCopier.cpp
230     CrossThreadTaskHandler.cpp
231     CryptographicUtilities.cpp
232     CryptographicallyRandomNumber.cpp
233     CurrentTime.cpp
234     DataLog.cpp
235     DateComponents.cpp
236     DateMath.cpp
237     DecimalNumber.cpp
238     FastBitVector.cpp
239     FastMalloc.cpp
240     FilePrintStream.cpp
241     FunctionDispatcher.cpp
242     Gigacage.cpp
243     GlobalVersion.cpp
244     GregorianDateTime.cpp
245     HashTable.cpp
246     JSONValues.cpp
247     Language.cpp
248     Lock.cpp
249     LockedPrintStream.cpp
250     MD5.cpp
251     MainThread.cpp
252     MediaTime.cpp
253     MemoryPressureHandler.cpp
254     MetaAllocator.cpp
255     MonotonicTime.cpp
256     NumberOfCores.cpp
257     OSRandomSource.cpp
258     PageBlock.cpp
259     ParallelHelperPool.cpp
260     ParallelJobsGeneric.cpp
261     ParkingLot.cpp
262     PrintStream.cpp
263     RAMSize.cpp
264     RandomDevice.cpp
265     RandomNumber.cpp
266     ReadWriteLock.cpp
267     RefCountedLeakCounter.cpp
268     RunLoop.cpp
269     SHA1.cpp
270     ScrambledPtr.cpp
271     Seconds.cpp
272     SixCharacterHash.cpp
273     StackBounds.cpp
274     StackStats.cpp
275     StackTrace.cpp
276     StringPrintStream.cpp
277     ThreadGroup.cpp
278     ThreadMessage.cpp
279     Threading.cpp
280     TimeWithDynamicClockType.cpp
281     TimingScope.cpp
282     UUID.cpp
283     WallTime.cpp
284     WordLock.cpp
285     WorkQueue.cpp
286     dtoa.cpp
287
288     dtoa/bignum-dtoa.cc
289     dtoa/bignum.cc
290     dtoa/cached-powers.cc
291     dtoa/diy-fp.cc
292     dtoa/double-conversion.cc
293     dtoa/fast-dtoa.cc
294     dtoa/fixed-dtoa.cc
295     dtoa/strtod.cc
296
297     persistence/PersistentCoders.cpp
298     persistence/PersistentDecoder.cpp
299     persistence/PersistentEncoder.cpp
300
301     text/AtomicString.cpp
302     text/AtomicStringImpl.cpp
303     text/AtomicStringTable.cpp
304     text/Base64.cpp
305     text/CString.cpp
306     text/LineEnding.cpp
307     text/StringBuilder.cpp
308     text/StringBuilderJSON.cpp
309     text/StringImpl.cpp
310     text/StringMalloc.cpp
311     text/StringView.cpp
312     text/SymbolImpl.cpp
313     text/SymbolRegistry.cpp
314     text/TextBreakIterator.cpp
315     text/TextStream.cpp
316     text/WTFString.cpp
317
318     text/icu/UTextProvider.cpp
319     text/icu/UTextProviderLatin1.cpp
320     text/icu/UTextProviderUTF16.cpp
321
322     threads/BinarySemaphore.cpp
323     threads/Signals.cpp
324
325     unicode/UTF8.cpp
326 )
327
328 set(WTF_INCLUDE_DIRECTORIES
329     "${BMALLOC_DIR}"
330     "${WTF_DIR}"
331     "${CMAKE_BINARY_DIR}"
332     "${DERIVED_SOURCES_DIR}"
333     "${THIRDPARTY_DIR}"
334 )
335
336 set(WTF_PRIVATE_INCLUDE_DIRECTORIES
337     "${WTF_DIR}/wtf"
338     "${WTF_DIR}/wtf/dtoa"
339     "${WTF_DIR}/wtf/persistence"
340     "${WTF_DIR}/wtf/text"
341     "${WTF_DIR}/wtf/text/icu"
342     "${WTF_DIR}/wtf/threads"
343     "${WTF_DIR}/wtf/unicode"
344 )
345
346 set(WTF_LIBRARIES
347     ${CMAKE_DL_LIBS}
348 )
349
350 if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
351     list(APPEND WTF_HEADERS
352         spi/darwin/CommonCryptoSPI.h
353     )
354     list(APPEND WTF_INCLUDE_DIRECTORIES
355         "${WTF_DIR}/wtf/spi/darwin"
356     )
357 endif ()
358
359 if (NOT USE_SYSTEM_MALLOC)
360     list(APPEND WTF_LIBRARIES bmalloc)
361 endif ()
362
363 list(APPEND WTF_SOURCES
364     unicode/icu/CollatorICU.cpp
365 )
366 set(WTF_SYSTEM_INCLUDE_DIRECTORIES
367     ${ICU_INCLUDE_DIRS}
368 )
369 list(APPEND WTF_LIBRARIES
370     ${ICU_DATA_LIBRARIES}
371     ${ICU_I18N_LIBRARIES}
372     ${ICU_LIBRARIES}
373 )
374
375 if (WIN32)
376     list(APPEND WTF_SOURCES
377         OSAllocatorWin.cpp
378         ThreadSpecificWin.cpp
379         ThreadingWin.cpp
380     )
381     list(APPEND WTF_LIBRARIES
382         winmm
383     )
384 else ()
385     list(APPEND WTF_SOURCES
386         OSAllocatorPosix.cpp
387         ThreadingPthreads.cpp
388     )
389 endif ()
390
391 WEBKIT_FRAMEWORK_DECLARE(WTF)
392 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
393
394 WEBKIT_WRAP_SOURCELIST(${WTF_SOURCES})
395 WEBKIT_FRAMEWORK(WTF)
396
397 if (MSVC)
398     set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
399     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
400
401     add_custom_command(
402         TARGET WTF
403         PRE_BUILD
404         COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/auto-version.pl ${DERIVED_SOURCES_DIR}
405         VERBATIM)
406
407     add_custom_command(
408         TARGET WTF
409         POST_BUILD
410         COMMAND ${PERL_EXECUTABLE} ${WEBKIT_LIBRARIES_DIR}/tools/scripts/version-stamp.pl ${DERIVED_SOURCES_DIR} $<TARGET_FILE:WTF>
411         VERBATIM)
412 endif ()
413
414 file(MAKE_DIRECTORY ${FORWARDING_HEADERS_DIR}/WTF/Scripts)
415
416 file(COPY
417     ../Scripts/generate-unified-source-bundles.rb
418     DESTINATION
419     ${FORWARDING_HEADERS_DIR}/WTF/Scripts
420 )