Allow having separate GC heaps and implement coordinated marking between them; this is useful for keeping wasm and js GC heaps separated with a clear boundary.
33 lines
928 B
CMake
33 lines
928 B
CMake
set(SOURCES
|
|
BlockAllocator.cpp
|
|
Cell.cpp
|
|
CellAllocator.cpp
|
|
ConservativeHashMap.cpp
|
|
ConservativeHashTable.cpp
|
|
ConservativeRangeProvider.cpp
|
|
ConservativeVector.cpp
|
|
CrossHeapMember.cpp
|
|
Root.cpp
|
|
RootHashMap.cpp
|
|
RootHashTable.cpp
|
|
RootVector.cpp
|
|
Heap.cpp
|
|
HeapGroup.cpp
|
|
HeapBlock.cpp
|
|
Timer.cpp
|
|
WeakBlock.cpp
|
|
WeakContainer.cpp
|
|
)
|
|
|
|
ladybird_lib(LibGC gc EXPLICIT_SYMBOL_EXPORT)
|
|
target_link_libraries(LibGC PRIVATE LibCore)
|
|
target_link_libraries(LibGC PUBLIC LibSync LibThreading)
|
|
|
|
if(cpptrace_FOUND AND LADYBIRD_ENABLE_CPPTRACE)
|
|
target_link_libraries(LibGC PRIVATE cpptrace::cpptrace)
|
|
target_compile_definitions(LibGC PRIVATE LIBGC_HAS_CPPTRACE=1)
|
|
endif()
|
|
|
|
# TODO: Use ladybird_generate_export_header and annotate entire LibGC with export macros
|
|
include(GenerateExportHeader)
|
|
generate_export_header(LibGC EXPORT_MACRO_NAME GC_API EXPORT_FILE_NAME "Export.h")
|