[SWDEV-529762] CMAKE - Fix lintian issues (#325)

Change-Id: Ide3563a876cb530d0e80676e78f36f18a233a3ba

Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>

[ROCm/amdsmi commit: bd82e881f5]
This commit is contained in:
Galantsev, Dmitrii
2025-05-06 17:59:47 -05:00
zatwierdzone przez GitHub
rodzic c6c01ee675
commit 51088382c8
12 zmienionych plików z 145 dodań i 229 usunięć
+66 -25
Wyświetl plik
@@ -4,10 +4,8 @@
cmake_minimum_required(VERSION 3.20)
set(AMD_SMI "amd_smi")
set(AMD_SMI_COMPONENT "lib${AMD_SMI}")
set(AMD_SMI_TARGET "${AMD_SMI}")
set(AMD_SMI_LIB_NAME "lib${AMD_SMI_TARGET}")
set(AMD_SMI_LIBS_TARGET "amd_smi_libraries")
set(AMD_SMI_LIBS_TARGET "${AMD_SMI}_lib")
set(CPACK_PACKAGE_NAME amd-smi-lib CACHE STRING "")
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared library (.so) or not.")
@@ -31,7 +29,6 @@ set(${AMD_SMI_LIBS_TARGET}_VERSION_MINOR "${CPACK_PACKAGE_VERSION_MINOR}")
set(${AMD_SMI_LIBS_TARGET}_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}")
set(${AMD_SMI_LIBS_TARGET}_VERSION_BUILD "0")
set(${AMD_SMI_LIBS_TARGET}_VERSION_HASH "${PKG_VERSION_HASH}")
set(${AMD_SMI_LIBS_TARGET}_VERSION_STRING
"${${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR}.${${AMD_SMI_LIBS_TARGET}_VERSION_MINOR}.${${AMD_SMI_LIBS_TARGET}_VERSION_PATCH}+${${AMD_SMI_LIBS_TARGET}_VERSION_HASH}"
)
@@ -56,9 +53,9 @@ set(PKG_VERSION_MINOR "${CPACK_PACKAGE_VERSION_MINOR}")
set(PKG_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}")
set(PKG_VERSION_NUM_COMMIT 0)
set(AMD_SMI_PACKAGE amd-smi-lib CACHE STRING "")
project(${AMD_SMI_LIBS_TARGET} DESCRIPTION "AMD System Management libraries"
HOMEPAGE_URL "https://github.com/ROCm/amdsmi")
project(${AMD_SMI_LIBS_TARGET})
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
@@ -81,10 +78,7 @@ cmake_dependent_option(ENABLE_LDCONFIG "Set library links and caches using ldcon
set(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_DATAROOTDIR}/${AMD_SMI}" CACHE STRING "Tests and Example install directory")
# Packaging directives
set(CPACK_PACKAGE_NAME ${AMD_SMI_PACKAGE} CACHE STRING "")
set(CPACK_PACKAGE_CONTACT "AMD-SMILib Support <amd-smi.support@amd.com>" CACHE STRING "")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD System Management libraries" CACHE STRING "")
generic_package()
@@ -240,11 +234,11 @@ install(
# Create cmake target
# Add all targets to the build-tree export set
export(TARGETS ${AMD_SMI_TARGET} FILE "${PROJECT_BINARY_DIR}/amd_smi_target.cmake")
export(TARGETS ${AMD_SMI} FILE "${PROJECT_BINARY_DIR}/amd_smi_target.cmake")
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
export(PACKAGE amd_smi)
export(PACKAGE ${AMD_SMI})
# Create the amd_smiConfig.cmake and amd_smiConfigVersion files
# ... for the build tree
@@ -283,19 +277,66 @@ add_subdirectory(goamdsmi_shim)
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "python3-argcomplete, libdrm-dev, libdrm-amdgpu-dev")
set(CPACK_DEBIAN_ASAN_PACKAGE_RECOMMENDS ${CPACK_DEBIAN_PACKAGE_RECOMMENDS})
set(CPACK_DEBIAN_DEV_PACKAGE_RECOMMENDS ${CPACK_DEBIAN_PACKAGE_RECOMMENDS})
set(CPACK_DEBIAN_PACKAGE_DEPENDS "sudo, python3 (>= 3.6.8), python3-pip, python3-setuptools, python3-wheel")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "sudo, libc6, python3 (>= 3.6.8), python3-pip, python3-setuptools, python3-wheel")
set(CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS})
set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS})
# $CURRENT_YEAR is used by copyright.in
string(TIMESTAMP CURRENT_YEAR "%Y")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/copyright.in DEBIAN/copyright @ONLY)
## Process the Debian install/remove scripts to update the CPACK variables
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst.in DEBIAN/postinst @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/amd-smi-lib/prerm.in DEBIAN/prerm @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/amd-smi-lib-tests/prerm.in DEBIAN/prerm @ONLY)
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "DEBIAN/postinst;DEBIAN/prerm")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst.in
DEBIAN/postinst
@ONLY
FILE_PERMISSIONS
OWNER_READ
OWNER_WRITE
OWNER_EXECUTE
GROUP_READ
GROUP_EXECUTE
WORLD_READ
WORLD_EXECUTE)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm.in
DEBIAN/prerm
@ONLY
FILE_PERMISSIONS
OWNER_READ
OWNER_WRITE
OWNER_EXECUTE
GROUP_READ
GROUP_EXECUTE
WORLD_READ
WORLD_EXECUTE)
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/postinst"
"${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/prerm")
# Configure pre-rm for tests only
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/${CPACK_PACKAGE_NAME}-tests/prerm.in
DEBIAN/${CPACK_PACKAGE_NAME}-tests/prerm
@ONLY
FILE_PERMISSIONS
OWNER_READ
OWNER_WRITE
OWNER_EXECUTE
GROUP_READ
GROUP_EXECUTE
WORLD_READ
WORLD_EXECUTE)
# Assign control scripts to the AMDSMI Lib & Tests packages
set(CPACK_DEBIAN_DEV_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/amd-smi-lib/prerm")
set(CPACK_DEBIAN_TESTS_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/amd-smi-lib-tests/prerm")
set(CPACK_DEBIAN_DEV_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/prerm")
set(CPACK_DEBIAN_TESTS_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/${CPACK_PACKAGE_NAME}-tests/prerm")
# install copyright file into share/doc/amd_smi/copyright
# required for debian package compliance
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/DEBIAN/copyright"
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/doc/${AMD_SMI}
COMPONENT dev)
# RPM package specific variables
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
@@ -331,13 +372,13 @@ endif()
## Enable Component Mode and set component specific flags
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${AMD_SMI_PACKAGE}")
set(CPACK_DEBIAN_TESTS_PACKAGE_NAME "${AMD_SMI_PACKAGE}-tests")
set(CPACK_DEBIAN_ASAN_PACKAGE_NAME "${AMD_SMI_PACKAGE}-asan")
set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_DEBIAN_TESTS_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-tests")
set(CPACK_DEBIAN_ASAN_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-asan")
set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_RPM_DEV_PACKAGE_NAME "${AMD_SMI_PACKAGE}")
set(CPACK_RPM_TESTS_PACKAGE_NAME "${AMD_SMI_PACKAGE}-tests")
set(CPACK_RPM_ASAN_PACKAGE_NAME "${AMD_SMI_PACKAGE}-asan")
set(CPACK_RPM_DEV_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
set(CPACK_RPM_TESTS_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-tests")
set(CPACK_RPM_ASAN_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-asan")
if(ENABLE_ASAN_PACKAGING)
# ASAN Package requires only asan component with libraries and license file
set(CPACK_COMPONENTS_ALL asan)
@@ -1,136 +0,0 @@
#!/bin/bash
#
# Copyright (C) Advanced Micro Devices. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
echo "Removing AMDSMI LIB Packages..."
# Other prerm actions
rm_ldconfig() {
# left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build
if [ "@ENABLE_LDCONFIG@" == "ON" ]; then
rm -f /etc/ld.so.conf.d/x86_64-libamd_smi_lib.conf
ldconfig
fi
}
rm_leftovers() {
# remove pyc files generated by python
rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/amdsmi_cli/__pycache__"
rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi/__pycache__"
# remove build and egg files
rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi.egg-info"
rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/build"
# remove leftover doc files
if test -e "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/../doc/amd_smi*"; then
rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/../doc/amd_smi*"
fi
}
rm_logFolder() {
rm -rf /var/log/amd_smi_lib
}
rm_rocm_tests_dir(){
if [ -d "@CPACK_PACKAGING_INSTALL_PREFIX@/share/amd_smi/tests/" ]; then
rm -rf "@CPACK_PACKAGING_INSTALL_PREFIX@/share/amd_smi/tests/"
echo "Removed ROCm tests directory."
fi
}
return_logrotateToOrigConfig() {
local logrotateConfFile=/etc/logrotate.d/amd_smi.conf
if [ -f $logrotateConfFile ]; then
rm -rf "$logrotateConfFile"
fi
if [ -f /etc/cron.hourly/logrotate ]; then
mv /etc/cron.hourly/logrotate /etc/cron.daily/logrotate
fi
if [ -f /lib/systemd/system/logrotate.timer.backup ]; then
cp /lib/systemd/system/logrotate.timer.backup /lib/systemd/system/logrotate.timer
rm -rf /lib/systemd/system/logrotate.timer.backup
systemctl reenable --now logrotate.timer
fi
}
rm_python_lib() {
# get python version
local python3_minor_version
python3_minor_version=$(python3 -c 'import sys;print(sys.version_info.minor)')
if [ $? -ne 0 ]; then
echo "[WARNING] Could not determine python version. "\
"AMD-SMI python library will not be uninstalled."
return
fi
# check if python version is supported
if [ "$python3_minor_version" -lt 6 ]; then
echo "[WARNING] AMD-SMI python library is not supported on python version 3.$python3_minor_version. "\
"AMD-SMI python library will not be uninstalled."
return
fi
# Remove old python library
local pip_list_output
pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check)
# check pip list output for amdsmi
if [[ $pip_list_output == *"amdsmi"* ]]; then
PIP_ROOT_USER_ACTION=ignore PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip uninstall amdsmi --yes --quiet --disable-pip-version-check
fi
pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check)
# check pip list output for amdsmi
if [[ $pip_list_output == *"amdsmi"* ]]; then
echo "[WARNING] AMD-SMI python library (amdsmi) is still installed in pip. "\
"Check post install to ensure version is correct"
else
echo "Removed AMD-SMI python library (amdsmi)..."
fi
}
case "$1" in
( remove | upgrade)
# remove old gpuv-smi symlink
rm -f @CPACK_PACKAGING_INSTALL_PREFIX@/bin/gpuv-smi &> /dev/null
echo "Removing AMDSMI Lib Packages..."
rm_python_lib
echo "python library removed"
rm_ldconfig
echo "ldconfig removed"
rm_leftovers
echo "leftovers removed"
rm_logFolder
echo "log folder removed"
rm_rocm_tests_dir
echo "rocm tests directory removed"
return_logrotateToOrigConfig
echo "logrotate configuration restored"
;;
( purge )
;;
( * )
exit 0
;;
esac
-9
Wyświetl plik
@@ -1,9 +0,0 @@
Package: amd_smi_lib
Architecture: any
Maintainer: Advanced Micro Devices Inc.
Priority: optional
Version: MODULE_VERSION
Depends:
Homepage: https://github.com/RadeonOpenCompute/amdsmi
Description: AMD System Management Interface Library for ROCm
+26
Wyświetl plik
@@ -0,0 +1,26 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: amdsmi
Source: https://github.com/ROCm/amdsmi.git
Files: *
Copyright: @CURRENT_YEAR@ Advanced Micro Devices, Inc.
License: MIT
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+27 -1
Wyświetl plik
@@ -1,5 +1,25 @@
#!/bin/bash
#
# Copyright (C) Advanced Micro Devices. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
echo "Removing AMDSMI LIB Packages..."
# Other prerm actions
rm_ldconfig() {
@@ -94,13 +114,19 @@ case "$1" in
( remove | upgrade)
# remove old gpuv-smi symlink
rm -f @CPACK_PACKAGING_INSTALL_PREFIX@/bin/gpuv-smi &> /dev/null
echo "Removing AMDSMI LIB Packages..."
echo "Removing AMDSMI Lib Packages..."
rm_python_lib
echo "python library removed"
rm_ldconfig
echo "ldconfig removed"
rm_leftovers
echo "leftovers removed"
rm_logFolder
echo "log folder removed"
rm_rocm_tests_dir
echo "rocm tests directory removed"
return_logrotateToOrigConfig
echo "logrotate configuration restored"
;;
( purge )
;;
@@ -1 +1 @@
__version__ = "@amd_smi_libraries_VERSION_STRING@"
__version__ = "@amd_smi_lib_VERSION_STRING@"
@@ -76,23 +76,15 @@ function(generic_package)
# cpack version is populated with CMAKE_PROJECT_VERSION implicitly
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME} CACHE STRING "")
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc." CACHE STRING "")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Placeholder Tool" CACHE STRING "")
set(CPACK_PACKAGE_DESCRIPTION "This package contains the AMD ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}." CACHE STRING "")
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "Default packaging prefix.")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" CACHE STRING "")
set(CPACK_RPM_PACKAGE_LICENSE "MIT" CACHE STRING "")
set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators.")
set(CPACK_VERBATIM_VARIABLES ON CACHE BOOL "Escape strings passed to CPACK.")
set(CPACK_DEB_COMPONENT_INSTALL ON PARENT_SCOPE)
set(CPACK_RPM_COMPONENT_INSTALL ON PARENT_SCOPE)
mark_as_advanced(
CPACK_PACKAGE_NAME
CPACK_PACKAGE_VENDOR
CPACK_PACKAGE_CONTACT
CPACK_PACKAGE_DESCRIPTION_SUMMARY
CPACK_PACKAGE_DESCRIPTION
CPACK_RESOURCE_FILE_LICENSE
CPACK_RPM_PACKAGE_LICENSE
CPACK_GENERATOR)
mark_as_advanced(CPACK_PACKAGE_NAME CPACK_PACKAGE_VENDOR CPACK_PACKAGE_CONTACT CPACK_RESOURCE_FILE_LICENSE
CPACK_RPM_PACKAGE_LICENSE CPACK_GENERATOR)
# Debian package specific variables
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
@@ -138,10 +130,12 @@ endfunction()
function(generic_package_post)
# PACKAGE package, no postfix
cpack_add_component_group("runtime")
cpack_add_component(dev GROUP runtime)
cpack_add_component(dev GROUP runtime DESCRIPTION "Development components of the library")
cpack_add_component(unspecified GROUP runtime)
# not quite sure why this is the only way to populate cpack description
cpack_add_component(runtime GROUP runtime DESCRIPTION "Runtime components of the library")
# PACKAGE-tests package, -tests postfix
cpack_add_component_group("tests")
cpack_add_component(tests GROUP tests)
cpack_add_component(tests GROUP tests DESCRIPTION "Test components of the library")
endfunction()
@@ -1 +1 @@
__version__ = "@amd_smi_libraries_VERSION_STRING@"
__version__ = "@amd_smi_lib_VERSION_STRING@"
@@ -10,7 +10,7 @@ name = "amdsmi"
authors = [
{name = "AMD", email = "amd-smi.support@amd.com"},
]
version = "@amd_smi_libraries_VERSION_STRING@"
version = "@amd_smi_lib_VERSION_STRING@"
license = {file = "amdsmi/LICENSE"}
readme = {file = "amdsmi/README.md", content-type = "text/markdown"}
description = "AMDSMI Python LIB - AMD GPU Monitoring Library"
@@ -3,7 +3,7 @@ import os
setup(
name="amdsmi",
version="@amd_smi_libraries_VERSION_STRING@",
version="@amd_smi_lib_VERSION_STRING@",
author="AMD",
author_email="amd-smi.support@amd.com",
description="AMDSMI Python LIB - AMD GPU Monitoring Library",
+14 -40
Wyświetl plik
@@ -4,19 +4,11 @@ message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
message("")
message("Build Configuration:")
# message("-----------BuildType: " ${CMAKE_BUILD_TYPE})
# message("------------Compiler: " ${CMAKE_CXX_COMPILER})
# message("-------------Version: " ${CMAKE_CXX_COMPILER_VERSION})
message("--------Proj Src Dir: " ${PROJECT_SOURCE_DIR})
# message("--------Proj Bld Dir: " ${PROJECT_BINARY_DIR})
# message("--------Proj Lib Dir: " ${PROJECT_BINARY_DIR}/lib)
# message("--------Proj Exe Dir: " ${PROJECT_BINARY_DIR}/bin)
# message("")
## Include common cmake modules
include(utils)
################# Determine the library version #########################
set(SO_VERSION_GIT_TAG_PREFIX "amdsmi_so_ver")
set(SRC_DIR "amd_smi")
@@ -73,48 +65,38 @@ set(${AMD_SMI}_VERSION_BUILD "0")
message("SOVERSION: ${SO_VERSION_STRING}")
# Create a configure file to get version info from within library
configure_file("${AMD_SMI_TARGET}Config.in" "${PROJECT_SOURCE_DIR}/include/amd_smi/${AMD_SMI_TARGET}Config.h")
configure_file("amd_smiConfig.in" "${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smiConfig.h")
add_executable(amd_smi_ex "../example/amd_smi_drm_example.cc")
target_link_libraries(amd_smi_ex ${AMD_SMI_TARGET})
add_library(${AMD_SMI_TARGET} ${SRC_LIST} ${INC_LIST})
target_link_libraries(${AMD_SMI_TARGET} pthread rt dl)
target_include_directories(${AMD_SMI_TARGET} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/rocm_smi/include
${PROJECT_SOURCE_DIR}/common/shared_mutex)
target_link_libraries(amd_smi_ex ${AMD_SMI})
add_library(${AMD_SMI} ${SRC_LIST} ${INC_LIST})
target_link_libraries(${AMD_SMI} pthread rt dl ${DRM_LIBRARIES} ${AMDGPU_DRM_LIBRARIES})
target_include_directories(${AMD_SMI} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/rocm_smi/include
${PROJECT_SOURCE_DIR}/common/shared_mutex)
# use the target_include_directories() command to specify the include directories for the target
target_include_directories(${AMD_SMI_TARGET} PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
target_include_directories(${AMD_SMI} PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
## Set the VERSION and SOVERSION values
set_property(TARGET ${AMD_SMI_TARGET} PROPERTY SOVERSION "${VERSION_MAJOR}")
set_property(TARGET ${AMD_SMI_TARGET} PROPERTY VERSION "${SO_VERSION_STRING}")
set_property(TARGET ${AMD_SMI} PROPERTY SOVERSION "${VERSION_MAJOR}")
set_property(TARGET ${AMD_SMI} PROPERTY VERSION "${SO_VERSION_STRING}")
## If the library is a release, strip the target library
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
if(${BUILD_SHARED_LIBS}) #stripping only for .so
add_custom_command(TARGET ${AMD_SMI_TARGET} POST_BUILD COMMAND ${CMAKE_STRIP}
lib${AMD_SMI_TARGET}.so.${SO_VERSION_STRING})
add_custom_command(TARGET ${AMD_SMI} POST_BUILD COMMAND ${CMAKE_STRIP} lib${AMD_SMI}.so.${SO_VERSION_STRING})
endif()
endif()
#file reorganization changes
#amd_smi.py moved to libexec/amd_smi. so creating amd-smi symlink
#file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
#add_custom_target(
# link-amd-smi ALL
# WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
# COMMAND ${CMAKE_COMMAND} -E create_symlink ../libexec/${AMD_SMI}/amd_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/amd-smi)
## Add the install directives for the runtime library.
install(
TARGETS ${AMD_SMI_TARGET}
TARGETS ${AMD_SMI}
EXPORT amd_smiTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev)
#COMPONENT ${AMD_SMI_COMPONENT})
install(
TARGETS ${AMD_SMI_TARGET}
TARGETS ${AMD_SMI}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan)
install(
@@ -122,18 +104,10 @@ install(
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi
COMPONENT dev)
install(
FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/${AMD_SMI_TARGET}Config.h
FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smiConfig.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi
COMPONENT dev)
install(
FILES ${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/kfd_ioctl.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi
COMPONENT dev)
#install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/python_smi_tools/rsmiBindings.py
# DESTINATION libexec/${AMD_SMI})
#install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/python_smi_tools/rocm_smi.py
# PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
# GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
# DESTINATION libexec/${AMD_SMI})
#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi
# DESTINATION bin)
@@ -50,7 +50,7 @@ include_directories(${TEST} ${CMAKE_CURRENT_SOURCE_DIR}/.. ${ROCM_INC_DIR}/..)
# Build rules
add_executable(${TEST} ${tstSources} ${functionalSources})
target_link_libraries(${TEST} ${AMD_SMI_TARGET} GTest::gtest_main c stdc++ pthread)
target_link_libraries(${TEST} ${AMD_SMI} GTest::gtest_main c stdc++ pthread)
# Install tests
install(