mimalloc.cmake /size: 1717 b    last modification: 2025-02-21 11:03
1include("source/libraries/mimalloc/cmake/mimalloc-config-version.cmake")
2
3set(mimalloc_sources
4    source/libraries/mimalloc/src/alloc.c
5    source/libraries/mimalloc/src/alloc-aligned.c
6    source/libraries/mimalloc/src/alloc-posix.c
7    source/libraries/mimalloc/src/arena.c
8    source/libraries/mimalloc/src/bitmap.c
9    source/libraries/mimalloc/src/heap.c
10    source/libraries/mimalloc/src/init.c
11    source/libraries/mimalloc/src/libc.c
12    source/libraries/mimalloc/src/options.c
13    source/libraries/mimalloc/src/os.c
14    source/libraries/mimalloc/src/page.c
15    source/libraries/mimalloc/src/random.c
16    source/libraries/mimalloc/src/segment.c
17    source/libraries/mimalloc/src/segment-map.c
18    source/libraries/mimalloc/src/stats.c
19    source/libraries/mimalloc/src/prim/prim.c
20)
21
22# if (MI_OSX_ZONE)
23#     list(APPEND mimalloc_sources source/libraries/mimalloc/src/prim/osx/alloc-override-zone.c)
24#     add_definitions(-DMI_OSX_ZONE=1)
25#     add_definitions(-DMI_OSX_INTERPOSE=1)
26# endif()
27
28set(mi_cflags "")
29set(mi_libraries "")
30
31add_library(mimalloc STATIC ${mimalloc_sources})
32
33# set(CMAKE_C_STANDARD 11)
34# set(CMAKE_CXX_STANDARD 17)
35
36target_include_directories(mimalloc PRIVATE
37    source/libraries/mimalloc
38    source/libraries/mimalloc/src
39    source/libraries/mimalloc/prim
40    source/libraries/mimalloc/include
41)
42
43target_compile_definitions(mimalloc PRIVATE
44    MIMALLOC_LARGE_OS_PAGES=1
45    MI_DEBUG=0
46    MI_SECURE=0
47    NDEBUG=0
48  # MI_DEBUG=3
49  # MI_SHOW_ERRORS=1
50  # MI_PADDING=1
51)
52
53if (NOT MSVC)
54    target_compile_options(mimalloc PRIVATE
55        -Wno-cast-align
56        -Wno-cast-qual
57    )
58endif ()
59
60# list(APPEND mi_defines MI_LIBC_MUSL=1)
61# list(APPEND mi_cflags -Wno-static-in-inline)
62