summaryrefslogtreecommitdiff
path: root/core/src/xmake/xmake.sh
blob: 06a3a82fcebf23dd80e1f5621c58150366ee5088 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/sh

target "xmake"
    set_kind "static"
    set_default false

    # add deps
    if has_config "external"; then
        local libs="lz4 sv tbox"
        for lib in $libs; do
            if has_config "$lib"; then
                add_options "$lib" "{public}"
            fi
        done
        if is_config "runtime" "luajit"; then
            if has_config "luajit"; then
                add_options "luajit" "{public}"
            fi
        else
            if has_config "lua"; then
                add_options "lua" "{public}"
            fi
        fi
    else
        local libs="lua_cjson lz4 sv tbox"
        for lib in $libs; do
            add_deps "$lib"
        done
        if is_config "runtime" "luajit"; then
            add_deps "luajit"
        else
            add_deps "lua"
        fi
    fi

    # add options
    add_options "readline" "curses" "{public}"

    # add definitions
    add_defines "__tb_prefix__=\"xmake\""
    if is_mode "debug"; then
        add_defines "__tb_debug__" "{public}"
    fi

    # set the auto-generated config.h
    set_configdir "${builddir}/${plat}/${arch}/${mode}"
    add_configfiles "xmake.config.h.in"

    # add includes directory
    add_includedirs ".." "{public}"
    add_includedirs "${builddir}/${plat}/${arch}/${mode}" "{public}"
    add_includedirs "../xxhash"
    add_includedirs "${projectdir}/xmake/scripts/module"

    # add the common source files
    add_files "*.c"
    add_files "base64/*.c"
    add_files "bloom_filter/*.c"
    add_files "curses/*.c"
    add_files "fwatcher/*.c"
    add_files "hash/*.c"
    add_files "io/*.c"
    add_files "libc/*.c"
    add_files "lz4/*.c"
    add_files "os/*.c"
    add_files "path/*.c"
    add_files "package/*.c"
    add_files "process/*.c"
    add_files "readline/*.c"
    add_files "sandbox/*.c"
    add_files "semver/*.c"
    add_files "string/*.c"
    add_files "utf8/*.c"
    add_files "utils/*.c"
    add_files "tty/*.c"
    add_files "binutils/*.c"
    add_files "binutils/coff/*.c"
    add_files "binutils/macho/*.c"
    add_files "binutils/elf/*.c"
    add_files "binutils/wasm/*.c"
    add_files "binutils/ar/*.c"
    add_files "binutils/mslib/*.c"
    add_files "thread/*.c"
    if is_plat "mingw"; then
        add_files "winos/*.c"
    fi