[CMake] Use WEBKIT_EXECUTABLE in MallocBench
[WebKit-https.git] / Source / bmalloc / CMakeLists.txt
1 set_property(DIRECTORY . PROPERTY FOLDER "bmalloc")
2
3 set(bmalloc_PRIVATE_INCLUDE_DIRECTORIES
4     "${BMALLOC_DIR}"
5 )
6
7 set(bmalloc_SOURCES
8     bmalloc/AllIsoHeaps.cpp
9     bmalloc/Allocator.cpp
10     bmalloc/AvailableMemory.cpp
11     bmalloc/Cache.cpp
12     bmalloc/CryptoRandom.cpp
13     bmalloc/Deallocator.cpp
14     bmalloc/DebugHeap.cpp
15     bmalloc/Environment.cpp
16     bmalloc/FreeList.cpp
17     bmalloc/Gigacage.cpp
18     bmalloc/Heap.cpp
19     bmalloc/HeapConstants.cpp
20     bmalloc/HeapKind.cpp
21     bmalloc/IsoHeapImpl.cpp
22     bmalloc/IsoPage.cpp
23     bmalloc/IsoSharedHeap.cpp
24     bmalloc/IsoSharedPage.cpp
25     bmalloc/IsoTLS.cpp
26     bmalloc/IsoTLSEntry.cpp
27     bmalloc/IsoTLSLayout.cpp
28     bmalloc/LargeMap.cpp
29     bmalloc/Logging.cpp
30     bmalloc/Mutex.cpp
31     bmalloc/ObjectType.cpp
32     bmalloc/PerProcess.cpp
33     bmalloc/Scavenger.cpp
34     bmalloc/bmalloc.cpp
35 )
36
37 set(bmalloc_PUBLIC_HEADERS
38     bmalloc/Algorithm.h
39     bmalloc/AllIsoHeaps.h
40     bmalloc/AllIsoHeapsInlines.h
41     bmalloc/Allocator.h
42     bmalloc/AvailableMemory.h
43     bmalloc/BAssert.h
44     bmalloc/BCompiler.h
45     bmalloc/BExport.h
46     bmalloc/BInline.h
47     bmalloc/BMalloced.h
48     bmalloc/BPlatform.h
49     bmalloc/BVMTags.h
50     bmalloc/Bits.h
51     bmalloc/BulkDecommit.h
52     bmalloc/BumpAllocator.h
53     bmalloc/BumpRange.h
54     bmalloc/Cache.h
55     bmalloc/Chunk.h
56     bmalloc/CryptoRandom.h
57     bmalloc/Deallocator.h
58     bmalloc/DebugHeap.h
59     bmalloc/DeferredDecommit.h
60     bmalloc/DeferredDecommitInlines.h
61     bmalloc/DeferredTrigger.h
62     bmalloc/DeferredTriggerInlines.h
63     bmalloc/EligibilityResult.h
64     bmalloc/EligibilityResultInlines.h
65     bmalloc/Environment.h
66     bmalloc/FailureAction.h
67     bmalloc/FixedVector.h
68     bmalloc/FreeList.h
69     bmalloc/FreeListInlines.h
70     bmalloc/Gigacage.h
71     bmalloc/Heap.h
72     bmalloc/HeapConstants.h
73     bmalloc/HeapKind.h
74     bmalloc/IsoAllocator.h
75     bmalloc/IsoAllocatorInlines.h
76     bmalloc/IsoConfig.h
77     bmalloc/IsoDeallocator.h
78     bmalloc/IsoDeallocatorInlines.h
79     bmalloc/IsoDirectory.h
80     bmalloc/IsoDirectoryInlines.h
81     bmalloc/IsoDirectoryPage.h
82     bmalloc/IsoDirectoryPageInlines.h
83     bmalloc/IsoHeap.h
84     bmalloc/IsoHeapImpl.h
85     bmalloc/IsoHeapImplInlines.h
86     bmalloc/IsoHeapInlines.h
87     bmalloc/IsoPage.h
88     bmalloc/IsoPageInlines.h
89     bmalloc/IsoPageTrigger.h
90     bmalloc/IsoSharedConfig.h
91     bmalloc/IsoSharedHeap.h
92     bmalloc/IsoSharedHeapInlines.h
93     bmalloc/IsoSharedPage.h
94     bmalloc/IsoSharedPageInlines.h
95     bmalloc/IsoTLS.h
96     bmalloc/IsoTLSAllocatorEntry.h
97     bmalloc/IsoTLSAllocatorEntryInlines.h
98     bmalloc/IsoTLSDeallocatorEntry.h
99     bmalloc/IsoTLSDeallocatorEntryInlines.h
100     bmalloc/IsoTLSEntry.h
101     bmalloc/IsoTLSEntryInlines.h
102     bmalloc/IsoTLSInlines.h
103     bmalloc/IsoTLSLayout.h
104     bmalloc/LargeMap.h
105     bmalloc/LargeRange.h
106     bmalloc/LineMetadata.h
107     bmalloc/List.h
108     bmalloc/Logging.h
109     bmalloc/Map.h
110     bmalloc/Mutex.h
111     bmalloc/Object.h
112     bmalloc/ObjectType.h
113     bmalloc/Packed.h
114     bmalloc/PerHeapKind.h
115     bmalloc/PerProcess.h
116     bmalloc/PerThread.h
117     bmalloc/PhysicalPageMap.h
118     bmalloc/ProcessCheck.h
119     bmalloc/Range.h
120     bmalloc/Scavenger.h
121     bmalloc/ScopeExit.h
122     bmalloc/Sizes.h
123     bmalloc/SmallLine.h
124     bmalloc/SmallPage.h
125     bmalloc/StaticPerProcess.h
126     bmalloc/StdLibExtras.h
127     bmalloc/Syscall.h
128     bmalloc/VMAllocate.h
129     bmalloc/Vector.h
130     bmalloc/Zone.h
131     bmalloc/bmalloc.h
132 )
133
134 if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
135     list(APPEND bmalloc_SOURCES
136         bmalloc/Zone.cpp
137     )
138 endif ()
139
140 set(bmalloc_LIBRARIES
141     ${CMAKE_DL_LIBS}
142 )
143
144 set(bmalloc_INTERFACE_LIBRARIES bmalloc)
145 set(bmalloc_INTERFACE_INCLUDE_DIRECTORIES ${bmalloc_FRAMEWORK_HEADERS_DIR})
146 set(bmalloc_INTERFACE_DEPENDENCIES bmalloc_CopyHeaders)
147
148 WEBKIT_FRAMEWORK_DECLARE(bmalloc)
149 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
150
151 WEBKIT_COPY_FILES(bmalloc_CopyHeaders
152     DESTINATION ${bmalloc_FRAMEWORK_HEADERS_DIR}
153     FILES ${bmalloc_PUBLIC_HEADERS}
154 )
155
156 WEBKIT_WRAP_SOURCELIST(${bmalloc_SOURCES})
157 WEBKIT_FRAMEWORK(bmalloc)
158 WEBKIT_FRAMEWORK_TARGET(bmalloc)
159
160 # Only build mbmalloc on platforms that MallocBench supports
161 if (DEVELOPER_MODE AND (APPLE OR HAVE_MALLOC_TRIM))
162     add_library(mbmalloc SHARED bmalloc/mbmalloc.cpp)
163     target_include_directories(mbmalloc PRIVATE ${bmalloc_PRIVATE_INCLUDE_DIRECTORIES})
164     target_link_libraries(mbmalloc Threads::Threads bmalloc)
165     set_target_properties(mbmalloc PROPERTIES COMPILE_DEFINITIONS "BUILDING_mbmalloc")
166 endif ()