diff --git a/projects/amdsmi/CMakeLists.txt b/projects/amdsmi/CMakeLists.txt index db7ca0afa7..ae3bd2f742 100644 --- a/projects/amdsmi/CMakeLists.txt +++ b/projects/amdsmi/CMakeLists.txt @@ -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 " 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) diff --git a/projects/amdsmi/DEBIAN/amd-smi-lib/prerm.in b/projects/amdsmi/DEBIAN/amd-smi-lib/prerm.in deleted file mode 100755 index 71b86fa961..0000000000 --- a/projects/amdsmi/DEBIAN/amd-smi-lib/prerm.in +++ /dev/null @@ -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 diff --git a/projects/amdsmi/DEBIAN/control b/projects/amdsmi/DEBIAN/control deleted file mode 100644 index 81f02bf7f2..0000000000 --- a/projects/amdsmi/DEBIAN/control +++ /dev/null @@ -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 - diff --git a/projects/amdsmi/DEBIAN/copyright.in b/projects/amdsmi/DEBIAN/copyright.in new file mode 100644 index 0000000000..4d6e35ee9c --- /dev/null +++ b/projects/amdsmi/DEBIAN/copyright.in @@ -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. diff --git a/projects/amdsmi/DEBIAN/prerm.in b/projects/amdsmi/DEBIAN/prerm.in index e2b7f8d690..71b86fa961 100755 --- a/projects/amdsmi/DEBIAN/prerm.in +++ b/projects/amdsmi/DEBIAN/prerm.in @@ -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 ) ;; diff --git a/projects/amdsmi/amdsmi_cli/_version.py.in b/projects/amdsmi/amdsmi_cli/_version.py.in index 479e19fe2e..a8869a0165 100644 --- a/projects/amdsmi/amdsmi_cli/_version.py.in +++ b/projects/amdsmi/amdsmi_cli/_version.py.in @@ -1 +1 @@ -__version__ = "@amd_smi_libraries_VERSION_STRING@" +__version__ = "@amd_smi_lib_VERSION_STRING@" diff --git a/projects/amdsmi/cmake_modules/help_package.cmake b/projects/amdsmi/cmake_modules/help_package.cmake index a857e04325..b6748c8d21 100644 --- a/projects/amdsmi/cmake_modules/help_package.cmake +++ b/projects/amdsmi/cmake_modules/help_package.cmake @@ -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() diff --git a/projects/amdsmi/py-interface/_version.py.in b/projects/amdsmi/py-interface/_version.py.in index 9ad803c8e4..4b1eb9cbf9 100644 --- a/projects/amdsmi/py-interface/_version.py.in +++ b/projects/amdsmi/py-interface/_version.py.in @@ -1 +1 @@ -__version__ = "@amd_smi_libraries_VERSION_STRING@" \ No newline at end of file +__version__ = "@amd_smi_lib_VERSION_STRING@" \ No newline at end of file diff --git a/projects/amdsmi/py-interface/pyproject.toml.in b/projects/amdsmi/py-interface/pyproject.toml.in index 93185b27e1..38dc13f11e 100644 --- a/projects/amdsmi/py-interface/pyproject.toml.in +++ b/projects/amdsmi/py-interface/pyproject.toml.in @@ -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" diff --git a/projects/amdsmi/py-interface/setup.py.in b/projects/amdsmi/py-interface/setup.py.in index eb3e992f65..dbd98e2bdf 100644 --- a/projects/amdsmi/py-interface/setup.py.in +++ b/projects/amdsmi/py-interface/setup.py.in @@ -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", diff --git a/projects/amdsmi/src/CMakeLists.txt b/projects/amdsmi/src/CMakeLists.txt index 3170e4f0d7..d28bee67b9 100644 --- a/projects/amdsmi/src/CMakeLists.txt +++ b/projects/amdsmi/src/CMakeLists.txt @@ -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 "$" - "$") +target_include_directories(${AMD_SMI} PUBLIC "$" + "$") ## 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) diff --git a/projects/amdsmi/tests/amd_smi_test/CMakeLists.txt b/projects/amdsmi/tests/amd_smi_test/CMakeLists.txt index 3918f6bfb1..33bb0018b4 100644 --- a/projects/amdsmi/tests/amd_smi_test/CMakeLists.txt +++ b/projects/amdsmi/tests/amd_smi_test/CMakeLists.txt @@ -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(