xmake.lua 2.14 KB
Newer Older
1
2
add_requires("pybind11")

PanZezhong's avatar
init  
PanZezhong committed
3
4
local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini")

5
6
7
8
set_toolchains("gcc")

-- Add spdlog from third_party directory
add_includedirs("third_party/spdlog/include")
9
add_includedirs("third_party/json/single_include/")
10

11
option("use-kv-caching")
12
13
    set_default(false)
    set_showmenu(true)
14
    set_description("Whether to compile the path using the kv caching operator")
15
16
option_end()

17
18
if has_config("use-kv-caching") then
    add_defines("ENABLE_KV_CACHING")
19
20
end

PanZezhong's avatar
init  
PanZezhong committed
21
22
23
target("infinicore_infer")
    set_kind("shared")

wooway777's avatar
wooway777 committed
24
25
26
    add_includedirs("include", { public = false })
    add_includedirs(INFINI_ROOT.."/include", { public = true })

PanZezhong's avatar
init  
PanZezhong committed
27
28
29
30
31
32
    add_linkdirs(INFINI_ROOT.."/lib")
    add_links("infiniop", "infinirt", "infiniccl")

    set_languages("cxx17")
    set_warnings("all", "error")

wooway777's avatar
wooway777 committed
33
    add_files("src/models/*.cpp")
PanZezhong's avatar
init  
PanZezhong committed
34
35
    add_files("src/models/*/*.cpp")
    add_files("src/tensor/*.cpp")
PanZezhong's avatar
PanZezhong committed
36
    add_files("src/allocator/*.cpp")
blkmjsian's avatar
blkmjsian committed
37
38
    add_files("src/dataloader/*.cpp")
    add_files("src/cache_manager/*.cpp")
PanZezhong's avatar
init  
PanZezhong committed
39
40
41
42
    add_includedirs("include")

    set_installdir(INFINI_ROOT)
    add_installfiles("include/infinicore_infer.h", {prefixdir = "include"})
PanZezhong's avatar
PanZezhong committed
43
    add_installfiles("include/infinicore_infer/models/*.h", {prefixdir = "include/infinicore_infer/models"})
PanZezhong's avatar
init  
PanZezhong committed
44
target_end()
45

46
target("_infinilm")
47
48
49
50
51
52
53
54
    add_packages("pybind11")
    set_default(false)
    add_rules("python.module", {soabi = true})
    set_languages("cxx17")
    set_kind("shared")

    local INFINI_ROOT = os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini")

55
56
    -- add_includedirs("csrc", { public = false })
    -- add_includedirs("csrc/pybind11", { public = false })
57
    add_includedirs(INFINI_ROOT.."/include", { public = true })
58
    add_includedirs("include", { public = false })
59
60
61
62
63
    -- spdlog is already included globally via add_includedirs at the top

    add_linkdirs(INFINI_ROOT.."/lib")
    add_links("infinicore_cpp_api", "infiniop", "infinirt", "infiniccl")

64
65
    -- Add src files
    add_files("csrc/**.cpp")
PanZezhong's avatar
PanZezhong committed
66
    add_files("csrc/**.cc")
67
68
69

    set_installdir("python/infinilm")
target_end()