diff --git a/projects/amdsmi/.gitignore b/projects/amdsmi/.gitignore index 632b6ea6c9..3729043d02 100644 --- a/projects/amdsmi/.gitignore +++ b/projects/amdsmi/.gitignore @@ -117,12 +117,12 @@ CTestTestfile.cmake _deps # -# ROCm files -# Removes generated config headers like rocmsmi64Config.h & oamConfig.h +# below files are generated via CMake # *Config.h +python_smi_tools/rsmiBindings.py # # Fake SYSFS files # -/device/* \ No newline at end of file +/device/* diff --git a/projects/amdsmi/python_smi_tools/rsmiBindings.py b/projects/amdsmi/python_smi_tools/rsmiBindings.py.in similarity index 98% rename from projects/amdsmi/python_smi_tools/rsmiBindings.py rename to projects/amdsmi/python_smi_tools/rsmiBindings.py.in index d3a81ee411..b6e7f2474d 100644 --- a/projects/amdsmi/python_smi_tools/rsmiBindings.py +++ b/projects/amdsmi/python_smi_tools/rsmiBindings.py.in @@ -12,16 +12,16 @@ import os # Use ROCm installation path if running from standard installation # With File Reorg rsmiBindings.py will be installed in /opt/rocm/libexec/rocm_smi. # relative path changed accordingly -path_librocm = os.path.dirname(os.path.realpath(__file__)) + '/../../lib/librocm_smi64.so' +path_librocm = os.path.dirname(os.path.realpath(__file__)) + '/../../@CMAKE_INSTALL_LIBDIR@/librocm_smi64.so.@VERSION_MAJOR@' if not os.path.isfile(path_librocm): print('Unable to find %s . Trying /opt/rocm*' % path_librocm) for root, dirs, files in os.walk('/opt', followlinks=True): - if 'librocm_smi64.so' in files: - path_librocm = os.path.join(os.path.realpath(root), 'librocm_smi64.so') + if 'librocm_smi64.so.@VERSION_MAJOR@' in files: + path_librocm = os.path.join(os.path.realpath(root), 'librocm_smi64.so.@VERSION_MAJOR@') if os.path.isfile(path_librocm): print('Using lib from %s' % path_librocm) else: - print('Unable to find librocm_smi64.so') + print('Unable to find librocm_smi64.so.@VERSION_MAJOR@') # ----------> TODO: Support static libs as well as SO @@ -30,7 +30,7 @@ try: rocmsmi = CDLL(path_librocm) except OSError: print('Unable to load the rocm_smi library.\n'\ - 'Set LD_LIBRARY_PATH to the folder containing librocm_smi64.\n'\ + 'Set LD_LIBRARY_PATH to the folder containing librocm_smi64.so.@VERSION_MAJOR@\n'\ '{0}Please refer to https://github.com/'\ 'RadeonOpenCompute/rocm_smi_lib for the installation guide.{1}'\ .format('\33[33m', '\033[0m')) @@ -638,4 +638,4 @@ rsmi_nps_mode_type = rsmi_nps_mode_type_t # Usage example to get corresponding names: # nps_mode_type_l[rsmi_nps_mode_type_t.RSMI_MEMORY_PARTITION_NPS2] # will return string 'NPS2' -nps_mode_type_l = ['NPS1', 'NPS2', 'NPS4', 'NPS8'] \ No newline at end of file +nps_mode_type_l = ['NPS1', 'NPS2', 'NPS4', 'NPS8'] diff --git a/projects/amdsmi/rocm_smi/CMakeLists.txt b/projects/amdsmi/rocm_smi/CMakeLists.txt index 30e2249332..ae8c017933 100755 --- a/projects/amdsmi/rocm_smi/CMakeLists.txt +++ b/projects/amdsmi/rocm_smi/CMakeLists.txt @@ -54,6 +54,10 @@ set(${ROCM_SMI}_VERSION_PATCH "0") set(${ROCM_SMI}_VERSION_BUILD "0") message("SOVERSION: ${SO_VERSION_STRING}") +# Configure rsmiBindings.py.in with SO major version: +configure_file( + "${COMMON_SRC_ROOT}/python_smi_tools/rsmiBindings.py.in" + "${COMMON_SRC_ROOT}/python_smi_tools/rsmiBindings.py") # Create a configure file to get version info from within library configure_file(