set_property(DIRECTORY . PROPERTY FOLDER "bmalloc") set(bmalloc_PRIVATE_INCLUDE_DIRECTORIES "${BMALLOC_DIR}" ) set(bmalloc_SOURCES bmalloc/AllIsoHeaps.cpp bmalloc/Allocator.cpp bmalloc/AvailableMemory.cpp bmalloc/Cache.cpp bmalloc/CryptoRandom.cpp bmalloc/Deallocator.cpp bmalloc/DebugHeap.cpp bmalloc/Environment.cpp bmalloc/FreeList.cpp bmalloc/Gigacage.cpp bmalloc/Heap.cpp bmalloc/HeapConstants.cpp bmalloc/HeapKind.cpp bmalloc/IsoHeapImpl.cpp bmalloc/IsoPage.cpp bmalloc/IsoSharedHeap.cpp bmalloc/IsoSharedPage.cpp bmalloc/IsoTLS.cpp bmalloc/IsoTLSEntry.cpp bmalloc/IsoTLSLayout.cpp bmalloc/LargeMap.cpp bmalloc/Logging.cpp bmalloc/Mutex.cpp bmalloc/ObjectType.cpp bmalloc/ObjectTypeTable.cpp bmalloc/PerProcess.cpp bmalloc/Scavenger.cpp bmalloc/bmalloc.cpp ) set(bmalloc_PUBLIC_HEADERS bmalloc/Algorithm.h bmalloc/AllIsoHeaps.h bmalloc/AllIsoHeapsInlines.h bmalloc/Allocator.h bmalloc/AvailableMemory.h bmalloc/BAssert.h bmalloc/BCompiler.h bmalloc/BExport.h bmalloc/BInline.h bmalloc/BMalloced.h bmalloc/BPlatform.h bmalloc/BVMTags.h bmalloc/Bits.h bmalloc/BulkDecommit.h bmalloc/BumpAllocator.h bmalloc/BumpRange.h bmalloc/Cache.h bmalloc/Chunk.h bmalloc/CryptoRandom.h bmalloc/Deallocator.h bmalloc/DebugHeap.h bmalloc/DeferredDecommit.h bmalloc/DeferredDecommitInlines.h bmalloc/DeferredTrigger.h bmalloc/DeferredTriggerInlines.h bmalloc/EligibilityResult.h bmalloc/EligibilityResultInlines.h bmalloc/Environment.h bmalloc/FailureAction.h bmalloc/FixedVector.h bmalloc/FreeList.h bmalloc/FreeListInlines.h bmalloc/Gigacage.h bmalloc/GigacageConfig.h bmalloc/GigacageKind.h bmalloc/Heap.h bmalloc/HeapConstants.h bmalloc/HeapKind.h bmalloc/IsoAllocator.h bmalloc/IsoAllocatorInlines.h bmalloc/IsoConfig.h bmalloc/IsoDeallocator.h bmalloc/IsoDeallocatorInlines.h bmalloc/IsoDirectory.h bmalloc/IsoDirectoryInlines.h bmalloc/IsoDirectoryPage.h bmalloc/IsoDirectoryPageInlines.h bmalloc/IsoHeap.h bmalloc/IsoHeapImpl.h bmalloc/IsoHeapImplInlines.h bmalloc/IsoHeapInlines.h bmalloc/IsoPage.h bmalloc/IsoPageInlines.h bmalloc/IsoPageTrigger.h bmalloc/IsoSharedConfig.h bmalloc/IsoSharedHeap.h bmalloc/IsoSharedHeapInlines.h bmalloc/IsoSharedPage.h bmalloc/IsoSharedPageInlines.h bmalloc/IsoTLS.h bmalloc/IsoTLSAllocatorEntry.h bmalloc/IsoTLSAllocatorEntryInlines.h bmalloc/IsoTLSDeallocatorEntry.h bmalloc/IsoTLSDeallocatorEntryInlines.h bmalloc/IsoTLSEntry.h bmalloc/IsoTLSEntryInlines.h bmalloc/IsoTLSInlines.h bmalloc/IsoTLSLayout.h bmalloc/LargeMap.h bmalloc/LargeRange.h bmalloc/LineMetadata.h bmalloc/List.h bmalloc/Logging.h bmalloc/Map.h bmalloc/Mutex.h bmalloc/Object.h bmalloc/ObjectType.h bmalloc/ObjectTypeTable.h bmalloc/Packed.h bmalloc/PerHeapKind.h bmalloc/PerProcess.h bmalloc/PerThread.h bmalloc/PhysicalPageMap.h bmalloc/ProcessCheck.h bmalloc/Range.h bmalloc/Scavenger.h bmalloc/ScopeExit.h bmalloc/Sizes.h bmalloc/SmallLine.h bmalloc/SmallPage.h bmalloc/StaticPerProcess.h bmalloc/StdLibExtras.h bmalloc/Syscall.h bmalloc/VMAllocate.h bmalloc/Vector.h bmalloc/Zone.h bmalloc/bmalloc.h ) if (CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND bmalloc_SOURCES bmalloc/Zone.cpp ) endif () set(bmalloc_LIBRARIES ${CMAKE_DL_LIBS} ) set(bmalloc_INTERFACE_LIBRARIES bmalloc) set(bmalloc_INTERFACE_INCLUDE_DIRECTORIES ${bmalloc_FRAMEWORK_HEADERS_DIR}) set(bmalloc_INTERFACE_DEPENDENCIES bmalloc_CopyHeaders) WEBKIT_FRAMEWORK_DECLARE(bmalloc) WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() WEBKIT_COPY_FILES(bmalloc_CopyHeaders DESTINATION ${bmalloc_FRAMEWORK_HEADERS_DIR} FILES ${bmalloc_PUBLIC_HEADERS} ) WEBKIT_WRAP_SOURCELIST(${bmalloc_SOURCES}) WEBKIT_FRAMEWORK(bmalloc) WEBKIT_FRAMEWORK_TARGET(bmalloc) # Only build mbmalloc on platforms that MallocBench supports if (DEVELOPER_MODE AND (APPLE OR HAVE_MALLOC_TRIM)) add_library(mbmalloc SHARED bmalloc/mbmalloc.cpp) target_include_directories(mbmalloc PRIVATE ${bmalloc_PRIVATE_INCLUDE_DIRECTORIES}) target_link_libraries(mbmalloc Threads::Threads bmalloc) set_target_properties(mbmalloc PROPERTIES COMPILE_DEFINITIONS "BUILDING_mbmalloc") endif ()