TensorRT-LLMs/cpp/libnuma_conan.py
dongxuy04 7137cc8f67
fix cuda driver link issue with driver version less than 12.3 (#5025)
Signed-off-by: Dongxu Yang <78518666+dongxuy04@users.noreply.github.com>
2025-06-10 15:27:39 +08:00

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"]