xmake.lua 1.98 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
9
set_toolchains("gcc")

-- Add spdlog from third_party directory
add_includedirs("third_party/spdlog/include")

PanZezhong's avatar
init  
PanZezhong committed
10
11
12
target("infinicore_infer")
    set_kind("shared")

wooway777's avatar
wooway777 committed
13
14
15
    add_includedirs("include", { public = false })
    add_includedirs(INFINI_ROOT.."/include", { public = true })

PanZezhong's avatar
init  
PanZezhong committed
16
17
18
19
20
21
    add_linkdirs(INFINI_ROOT.."/lib")
    add_links("infiniop", "infinirt", "infiniccl")

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

wooway777's avatar
wooway777 committed
22
    add_files("src/models/*.cpp")
PanZezhong's avatar
init  
PanZezhong committed
23
24
    add_files("src/models/*/*.cpp")
    add_files("src/tensor/*.cpp")
PanZezhong's avatar
PanZezhong committed
25
    add_files("src/allocator/*.cpp")
blkmjsian's avatar
blkmjsian committed
26
27
    add_files("src/dataloader/*.cpp")
    add_files("src/cache_manager/*.cpp")
PanZezhong's avatar
init  
PanZezhong committed
28
29
30
31
    add_includedirs("include")

    set_installdir(INFINI_ROOT)
    add_installfiles("include/infinicore_infer.h", {prefixdir = "include"})
PanZezhong's avatar
PanZezhong committed
32
    add_installfiles("include/infinicore_infer/models/*.h", {prefixdir = "include/infinicore_infer/models"})
PanZezhong's avatar
init  
PanZezhong committed
33
target_end()
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

-- Python bindings for Llama model
target("_infinilm_llama")
    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")

    add_includedirs("csrc", { public = false })
    add_includedirs("csrc/models/pybind11", { public = false })
    add_includedirs("include", { public = false })
    add_includedirs(INFINI_ROOT.."/include", { public = true })
    -- spdlog is already included globally via add_includedirs at the top

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

    -- Add Llama model files
    add_files("csrc/models/llama/llama_*.cpp")
    add_files("csrc/models/debug_utils/*.cpp")
    add_files("csrc/models/pybind11/models.cc")

    set_installdir("python/infinilm")
target_end()