mirror of
https://github.com/NVIDIA/TensorRT-LLM.git
synced 2026-01-13 22:18:36 +08:00
52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
import os
|
|
|
|
from conan import ConanFile
|
|
from conan.errors import ConanInvalidConfiguration
|
|
|
|
|
|
class LibnumaSystemConan(ConanFile):
|
|
name = "libnuma"
|
|
version = "system"
|
|
package_type = "shared-library"
|
|
settings = "os", "arch"
|
|
|
|
def package_info(self):
|
|
if self.settings.os == "Windows":
|
|
self.output.info("libnuma not needed on Windows.")
|
|
return
|
|
|
|
self.cpp_info.includedirs = ["/usr/include"]
|
|
|
|
arch = str(self.settings.arch)
|
|
os_name = str(self.settings.os)
|
|
|
|
if os_name == "Linux":
|
|
lib_candidates = [
|
|
"/usr/lib64/libnuma.so", # RHEL/CentOS/Rocky
|
|
"/lib64/libnuma.so", # possible fallback
|
|
]
|
|
if arch == "x86_64":
|
|
# Debian/Ubuntu x86_64
|
|
lib_candidates.append("/usr/lib/x86_64-linux-gnu/libnuma.so")
|
|
elif arch in ["armv8", "aarch64"]:
|
|
# Debian/Ubuntu aarch64
|
|
lib_candidates.append("/usr/lib/aarch64-linux-gnu/libnuma.so")
|
|
else:
|
|
self.output.info(
|
|
f"Unrecognized architecture: {arch}, falling back to /usr/lib/libnuma.so"
|
|
)
|
|
lib_candidates.append("/usr/lib/libnuma.so")
|
|
for lib in lib_candidates:
|
|
if os.path.exists(lib):
|
|
self.output.info(f"Using libnuma from: {lib}")
|
|
self.cpp_info.set_property("cmake_link_options", [lib])
|
|
break
|
|
else:
|
|
raise ConanInvalidConfiguration(
|
|
"libnuma.so not found on system")
|
|
else:
|
|
raise ConanInvalidConfiguration(f"Unsupported OS: {os_name}")
|
|
|
|
self.cpp_info.libdirs = []
|
|
self.cpp_info.system_libs = ["numa"]
|