diff --git a/xmake.lua b/xmake.lua index b75babcb4..0316680da 100644 --- a/xmake.lua +++ b/xmake.lua @@ -513,35 +513,15 @@ target("infiniop") set_kind("shared") add_deps("infinirt") - if has_config("nv-gpu") then - local cuda_root = os.getenv("CUDA_HOME") or os.getenv("CUDA_PATH") or get_config("cuda") or "/usr/local/cuda" - add_includedirs(cuda_root .. "/include") - end - if has_config("hygon-dcu") then - local dtk_root = os.getenv("DTK_ROOT") or "/opt/dtk" - add_includedirs( - path.join(dtk_root, "include"), - path.join(dtk_root, "cuda", "include"), - path.join(dtk_root, "cuda", "cuda", "include"), - path.join(dtk_root, "cuda", "cuda", "targets", "x86_64-linux", "include"), - path.join(dtk_root, "cuda", "cuda", "extras", "clang_internal_header"), - path.join(dtk_root, "cuda", "cuda-12", "include"), - path.join(dtk_root, "cuda", "cuda-12", "targets", "x86_64-linux", "include"), - path.join(dtk_root, "cuda", "cuda-12", "extras", "clang_internal_header"), - path.join(dtk_root, "cuda", "cuda-11", "include"), - path.join(dtk_root, "cuda", "cuda-11", "targets", "x86_64-linux", "include"), - path.join(dtk_root, "cuda", "cuda-11", "extras", "clang_internal_header") - ) + local public_cuda_root = get_config("cuda") or os.getenv("CUDA_HOME") or os.getenv("CUDA_PATH") + if public_cuda_root and public_cuda_root ~= "" then + add_includedirs(path.join(public_cuda_root, "include")) add_linkdirs( - path.join(dtk_root, "lib"), - path.join(dtk_root, "cuda", "lib64"), - path.join(dtk_root, "cuda", "cuda", "lib64"), - path.join(dtk_root, "cuda", "cuda", "targets", "x86_64-linux", "lib"), - path.join(dtk_root, "cuda", "cuda-12", "lib64"), - path.join(dtk_root, "cuda", "cuda-12", "targets", "x86_64-linux", "lib"), - path.join(dtk_root, "cuda", "cuda-11", "lib64"), - path.join(dtk_root, "cuda", "cuda-11", "targets", "x86_64-linux", "lib") + path.join(public_cuda_root, "lib64"), + path.join(public_cuda_root, "targets", "x86_64-linux", "lib") ) + elseif has_config("nv-gpu") then + add_includedirs(path.join("/usr/local/cuda", "include")) end if has_config("cpu") then diff --git a/xmake/hygon.lua b/xmake/hygon.lua index 4bf755dfe..1cdbc4b3c 100644 --- a/xmake/hygon.lua +++ b/xmake/hygon.lua @@ -1,12 +1,16 @@ local dtk_root = os.getenv("DTK_ROOT") or "/opt/dtk" local function hygon_cuda_roots() - return { - path.join(dtk_root, "cuda"), - path.join(dtk_root, "cuda", "cuda"), - path.join(dtk_root, "cuda", "cuda-12"), - path.join(dtk_root, "cuda", "cuda-11"), - } + local roots = {} + local configured = get_config("cuda") or os.getenv("HYGON_CUDA_HOME") + if configured and configured ~= "" then + table.insert(roots, configured) + end + table.insert(roots, path.join(dtk_root, "cuda", "cuda")) + table.insert(roots, path.join(dtk_root, "cuda", "cuda-12")) + table.insert(roots, path.join(dtk_root, "cuda", "cuda-11")) + table.insert(roots, path.join(dtk_root, "cuda")) + return roots end local function resolve_hygon_cuda_tool(tool)