summaryrefslogtreecommitdiff
path: root/core/src/mimalloc/xmake.sh
blob: 2aece12873b6322c1dc1491352bb6a05a114c683 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh

target "mimalloc"
    set_kind "static"
    set_default false
    set_warnings "all"
    add_includedirs "mimalloc/include" "{public}"
    add_defines "XM_CONFIG_API_HAVE_MIMALLOC" "{public}"

    add_files "mimalloc/src/alloc.c"
    add_files "mimalloc/src/alloc-aligned.c"
    add_files "mimalloc/src/alloc-posix.c"
    add_files "mimalloc/src/arena.c"
    add_files "mimalloc/src/bitmap.c"
    add_files "mimalloc/src/heap.c"
    add_files "mimalloc/src/init.c"
    add_files "mimalloc/src/libc.c"
    add_files "mimalloc/src/options.c"
    add_files "mimalloc/src/os.c"
    add_files "mimalloc/src/page.c"
    add_files "mimalloc/src/random.c"
    add_files "mimalloc/src/segment.c"
    add_files "mimalloc/src/segment-map.c"
    add_files "mimalloc/src/stats.c"
    add_files "mimalloc/src/prim/prim.c"

    # override malloc
    if is_plat "macosx"; then
        add_files "mimalloc/src/prim/osx/alloc-override-zone.c"
        add_defines "MI_OSX_ZONE=1" "MI_OSX_INTERPOSE=1"
    fi
    add_cflags "-fno-builtin-malloc"

    # fast atomics
    if is_plat "macosx" "iphoneos" && is_arch "arm64"; then
        add_cflags "-Xarch_arm64"
        add_cflags "-march=armv8.1-a"
    elif is_arch "arm64"; then
        add_cflags "-march=armv8.1-a"
    fi

    add_defines "MI_SKIP_COLLECT_ON_EXIT=1"
    if is_plat "mingw"; then
        add_defines "_WIN32_WINNT=0x600"
    fi

    if is_plat "mingw"; then
        add_syslinks "psapi" "shell32" "user32" "advapi32" "bcrypt" "{public}"
    fi