CMAKE: Repackage whole project for ROCm 5.5 release
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
Change-Id: I932b11a111c8e0db04bd8c5e0c3d1a470e5b2386
[ROCm/amdsmi commit: aeb0bf5832]
Этот коммит содержится в:
@@ -4,7 +4,9 @@ cmake/build/
|
||||
.cache/
|
||||
|
||||
# build artifacts
|
||||
include/rocm_smi/rocm_smi64Config.h
|
||||
include/amd_smi/amd_smi64Config.h
|
||||
include/amd_smi/amd_smiConfig.h
|
||||
rocm_smi/include/rocm_smi/rocm_smi64Config.h
|
||||
DEBIAN/postinst
|
||||
DEBIAN/prerm
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
#
|
||||
cmake_minimum_required(VERSION 3.11)
|
||||
|
||||
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(BUILD_SHARED_LIBS
|
||||
@@ -14,23 +18,16 @@ set(CMAKE_MODULE_PATH
|
||||
CACHE INTERNAL "Default module path.")
|
||||
## Include common cmake modules
|
||||
include(utils)
|
||||
include(GNUInstallDirs)
|
||||
include(help_package)
|
||||
find_package(PkgConfig)
|
||||
|
||||
if(NOT DEFINED CPACK_RESOURCE_FILE_LICENSE)
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
|
||||
endif()
|
||||
|
||||
set(ROCM_SMI "amd_smi")
|
||||
set(ROCM_SMI_COMPONENT "lib${ROCM_SMI}")
|
||||
set(ROCM_SMI_TARGET "${ROCM_SMI}64")
|
||||
set(ROCM_SMI_LIB_NAME "lib${ROCM_SMI_TARGET}")
|
||||
generic_add_rocm()
|
||||
|
||||
# provide git to utilities
|
||||
find_program(GIT NAMES git)
|
||||
|
||||
## Setup the package version based on git tags.
|
||||
set(PKG_VERSION_GIT_TAG_PREFIX "rsmi_pkg_ver")
|
||||
set(PKG_VERSION_GIT_TAG_PREFIX "amdsmi_pkg_ver")
|
||||
get_package_version_number("1.0.0" ${PKG_VERSION_GIT_TAG_PREFIX} GIT)
|
||||
message("Package version: ${PKG_VERSION_STR}")
|
||||
set(${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
@@ -47,25 +44,29 @@ set(PKG_VERSION_MINOR 0)
|
||||
set(PKG_VERSION_PATCH 0)
|
||||
set(PKG_VERSION_NUM_COMMIT 0)
|
||||
|
||||
## Define default variable and variables for the optional build target
|
||||
## amd_smi_lib-dev
|
||||
set(CMAKE_INSTALL_PREFIX
|
||||
"/opt/rocm"
|
||||
CACHE STRING "Default installation directory.")
|
||||
set(ROCM_SMI_PACKAGE amd-smi-lib)
|
||||
set(AMD_SMI_PACKAGE
|
||||
amd-smi-lib
|
||||
CACHE STRING "")
|
||||
|
||||
project(${AMD_SMI_LIBS_TARGET})
|
||||
|
||||
option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" ON)
|
||||
|
||||
option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
option(BUILD_TESTS "Build test suite" OFF)
|
||||
option(ENABLE_LDCONFIG "Set library links and caches using ldconfig." ON)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.4.0)
|
||||
message("Compiler version is " ${CMAKE_CXX_COMPILER_VERSION})
|
||||
message(FATAL_ERROR "Require at least gcc-5.4.0")
|
||||
endif()
|
||||
# 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()
|
||||
|
||||
## Compiler flags
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fno-rtti -m64 -msse -msse2 -std=c++11")
|
||||
@@ -75,16 +76,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat=2 -fno-common -Wstrict-overflow
|
||||
# Intentionally leave out -Wsign-promo. It causes spurious warnings.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wreorder")
|
||||
|
||||
# Clang does not set the build-id
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id=sha1")
|
||||
endif()
|
||||
|
||||
## Address Sanitize Flag
|
||||
if(${ADDRESS_SANITIZER})
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g")
|
||||
set(CMAKE_EXE_LINKER_FLAGS -fsanitize=address)
|
||||
|
||||
if(BUILD_SHARED_LIBS})
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -shared-libsan")
|
||||
else()
|
||||
@@ -98,15 +91,6 @@ else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wtrampolines -Wl,-z,now -fPIE")
|
||||
endif()
|
||||
|
||||
# Use this instead of above for 32 bit
|
||||
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG")
|
||||
endif()
|
||||
|
||||
set(COMMON_SRC_DIR "${PROJECT_SOURCE_DIR}/src")
|
||||
set(ROCM_SRC_DIR "${PROJECT_SOURCE_DIR}/rocm_smi/src")
|
||||
set(AMDSMI_SRC_DIR "${PROJECT_SOURCE_DIR}/src/amd_smi")
|
||||
@@ -119,19 +103,9 @@ pkg_check_modules(DRM REQUIRED libdrm)
|
||||
pkg_check_modules(AMDGPU_DRM REQUIRED libdrm_amdgpu)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/third_party/shared_mutex
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/amd_smi/include ${DRM_INCLUDE_DIRS})
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include/amd_smi ${DRM_INCLUDE_DIRS})
|
||||
|
||||
set(CMN_SRC_LIST
|
||||
"${AMDSMI_SRC_DIR}/amd_smi.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_common.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_drm.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_gpu_device.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_lib_loader.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_socket.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_system.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_utils.cc"
|
||||
"${AMDSMI_SRC_DIR}/amd_smi_uuid.cc"
|
||||
"${AMDSMI_SRC_DIR}/fdinfo.cc"
|
||||
"${ROCM_SRC_DIR}/rocm_smi.cc"
|
||||
"${ROCM_SRC_DIR}/rocm_smi_counters.cc"
|
||||
"${ROCM_SRC_DIR}/rocm_smi_device.cc"
|
||||
@@ -145,14 +119,6 @@ set(CMN_SRC_LIST
|
||||
"${SHR_MUTEX_DIR}/shared_mutex.cc")
|
||||
|
||||
set(CMN_INC_LIST
|
||||
"${COMMON_INC_DIR}/amd_smi.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_common.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_device.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_drm.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_gpu_device.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_lib_loader.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_socket.h"
|
||||
"${COMMON_INC_DIR}/impl/amd_smi_system.h"
|
||||
"${ROCM_INC_DIR}/rocm_smi.h"
|
||||
"${ROCM_INC_DIR}/rocm_smi_common.h"
|
||||
"${ROCM_INC_DIR}/rocm_smi_counters.h"
|
||||
@@ -167,56 +133,14 @@ set(CMN_INC_LIST
|
||||
"${SHR_MUTEX_DIR}/shared_mutex.h")
|
||||
|
||||
add_subdirectory("rocm_smi")
|
||||
add_subdirectory("src")
|
||||
add_subdirectory("example")
|
||||
|
||||
if(BUILD_TESTS)
|
||||
add_subdirectory("tests/rocm_smi_test")
|
||||
add_subdirectory("tests/amd_smi_test")
|
||||
endif()
|
||||
|
||||
# Examples and docs
|
||||
set(SMI_EXAMPLE_EXE "amd_smi_drm_ex")
|
||||
add_executable(${SMI_EXAMPLE_EXE} "example/amd_smi_drm_example.cc")
|
||||
target_link_libraries(${SMI_EXAMPLE_EXE} ${ROCM_SMI_TARGET})
|
||||
add_dependencies(${SMI_EXAMPLE_EXE} ${ROCM_SMI_TARGET})
|
||||
|
||||
set(SMI_NODRM_EXAMPLE_EXE "amd_smi_nodrm_ex")
|
||||
add_executable(${SMI_NODRM_EXAMPLE_EXE} "example/amd_smi_nodrm_example.cc")
|
||||
target_link_libraries(${SMI_NODRM_EXAMPLE_EXE} ${ROCM_SMI_TARGET})
|
||||
add_dependencies(${SMI_NODRM_EXAMPLE_EXE} ${ROCM_SMI_TARGET})
|
||||
|
||||
# Generate Doxygen documentation
|
||||
find_package(Doxygen)
|
||||
find_package(LATEX COMPONENTS PDFLATEX)
|
||||
|
||||
if(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
set(RSMI_MANUAL_NAME "AMD_SMI_Manual")
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/amd_smi_doxygen.cfg ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/docs/amd_smi_doxygen.cfg "${AMDSMI_INC_DIR}/amd_smi.h"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
COMMAND make > /dev/null
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/docs/${RSMI_MANUAL_NAME}_new.pdf
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/latex)
|
||||
|
||||
add_custom_target(amdsmi_docs DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf)
|
||||
|
||||
add_dependencies(${ROCM_SMI_TARGET} amdsmi_docs)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
DESTINATION share/doc/${ROCM_SMI}
|
||||
RENAME ${RSMI_MANUAL_NAME}.pdf)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.md DESTINATION share/doc/${ROCM_SMI}/)
|
||||
else()
|
||||
message("Doxygen or Latex is not found. Will not generate documents.")
|
||||
endif(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
|
||||
# Generate python_wrapper and package targets
|
||||
find_program(PYTHON3 "python3")
|
||||
find_program(PIP3 "pip3")
|
||||
@@ -238,9 +162,9 @@ if(PYTHON3 AND PIP3)
|
||||
DEPENDS clang_tools_extract
|
||||
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper
|
||||
COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/include/amd_smi/amd_smi.h ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper
|
||||
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/rocm_smi
|
||||
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/amd_smi
|
||||
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/rocm_smi/include/rocm_smi/kfd_ioctl.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/rocm_smi/
|
||||
${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/amd_smi/
|
||||
COMMAND
|
||||
python3 ${CMAKE_CURRENT_SOURCE_DIR}/tools/generator.py ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/amd_smi.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/ ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper/
|
||||
@@ -260,7 +184,7 @@ if(PYTHON3 AND PIP3)
|
||||
COMMAND cp ${PY_INTERFACE_DIR}/amdsmi_interface.py ${PACKAGE_OUTPUT_DIR}
|
||||
COMMAND cp ${PY_INTERFACE_DIR}/amdsmi_wrapper.py ${PACKAGE_OUTPUT_DIR}
|
||||
COMMAND cp ${PY_INTERFACE_DIR}/README.md ${PACKAGE_OUTPUT_DIR}
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/rocm_smi/libamd_smi64.so ${PACKAGE_OUTPUT_DIR}
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/amd_smi/libamd_smi.so ${PACKAGE_OUTPUT_DIR}
|
||||
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${PACKAGE_OUTPUT_DIR}
|
||||
COMMAND echo ${PACKAGE_OUTPUT_DIR})
|
||||
|
||||
@@ -270,8 +194,10 @@ endif(PYTHON3 AND PIP3)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(amd_smi-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/amd_smi-config.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/amd_smi)
|
||||
configure_package_config_file(
|
||||
amd_smi-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/amd_smi-config.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/amd_smi
|
||||
PATH_VARS CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_BINDIR)
|
||||
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/amd_smi-config-version.cmake
|
||||
@@ -281,12 +207,12 @@ write_basic_package_version_file(
|
||||
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/amd_smi-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/amd_smi-config-version.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${ROCM_SMI}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${AMD_SMI}
|
||||
COMPONENT dev)
|
||||
|
||||
# Create cmake target
|
||||
# Add all targets to the build-tree export set
|
||||
export(TARGETS ${ROCM_SMI_TARGET} FILE "${PROJECT_BINARY_DIR}/rcom_smi_target.cmake")
|
||||
export(TARGETS ${AMD_SMI_TARGET} 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)
|
||||
@@ -294,33 +220,18 @@ export(PACKAGE amd_smi)
|
||||
# Create the amd_smiConfig.cmake and amd_smiConfigVersion files
|
||||
# ... for the build tree
|
||||
install(
|
||||
EXPORT rocm_smiTargets
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${ROCM_SMI}"
|
||||
EXPORT amd_smiTargets
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${AMD_SMI}
|
||||
COMPONENT dev)
|
||||
|
||||
#License file
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "NCSA")
|
||||
install(
|
||||
FILES ${CPACK_RESOURCE_FILE_LICENSE}
|
||||
DESTINATION share/doc/${ROCM_SMI}
|
||||
DESTINATION share/doc/${AMD_SMI}
|
||||
RENAME LICENSE.txt)
|
||||
|
||||
###########################
|
||||
# Packaging directives
|
||||
###########################
|
||||
set(CPACK_GENERATOR
|
||||
"DEB;RPM"
|
||||
CACHE STRING "Default packaging generators.")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX
|
||||
"${CMAKE_INSTALL_PREFIX}"
|
||||
CACHE STRING "Default packaging prefix.")
|
||||
set(ENABLE_LDCONFIG
|
||||
ON
|
||||
CACHE BOOL "Set library links and caches using ldconfig.")
|
||||
set(CPACK_PACKAGE_NAME ${ROCM_SMI_PACKAGE})
|
||||
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.")
|
||||
set(CPACK_PACKAGE_CONTACT "RocmSMILib Support <rocm-smi.support@amd.com>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD System Management libraries")
|
||||
#Readme file
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.md DESTINATION share/doc/${AMD_SMI})
|
||||
|
||||
#Make proper version for appending
|
||||
#Default Value is 99999, setting it first
|
||||
@@ -330,17 +241,9 @@ if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
|
||||
endif()
|
||||
|
||||
#Debian package specific variables
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE
|
||||
${CPACK_DEBIAN_PACKAGE_HOMEPAGE}
|
||||
CACHE STRING "https://github.com/RadeonOpenCompute/ROCm")
|
||||
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
else()
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE "local")
|
||||
endif()
|
||||
set(CPACK_DEBIAN_PACKAGE_PROVIDES "rocm-smi")
|
||||
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "sudo")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "python3, rocm-core")
|
||||
set(CPACK_DEBIAN_PACKAGE_PROVIDES "amd-smi")
|
||||
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "sudo, libdrm-dev")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "python3")
|
||||
|
||||
## Process the Debian install/remove scripts to update the CPACK variables
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst.in DEBIAN/postinst @ONLY)
|
||||
@@ -350,21 +253,22 @@ set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "DEBIAN/postinst;DEBIAN/prerm")
|
||||
# RPM package specific variables
|
||||
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
||||
"${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
|
||||
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
else()
|
||||
set(CPACK_RPM_PACKAGE_RELEASE "local")
|
||||
endif()
|
||||
#Set rpm distro
|
||||
if(CPACK_RPM_PACKAGE_RELEASE)
|
||||
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
|
||||
endif()
|
||||
set(CPACK_RPM_PACKAGE_PROVIDES "rocm-smi")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "python3, rocm-core")
|
||||
set(CPACK_RPM_PACKAGE_PROVIDES "amd-smi")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "python3")
|
||||
|
||||
# Add rocm-core dependency if -DROCM_DEP_ROCMCORE=ON is passed
|
||||
if(ROCM_DEP_ROCMCORE)
|
||||
string(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS ", rocm-core")
|
||||
string(APPEND CPACK_RPM_PACKAGE_REQUIRES ", rocm-core")
|
||||
endif()
|
||||
|
||||
# The line below doesn't currently work; it may be this issue:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1811358
|
||||
# set(CPACK_RPM_PACKAGE_SUGGESTS "sudo")
|
||||
# set(CPACK_RPM_PACKAGE_SUGGESTS "sudo, libdrm-dev")
|
||||
|
||||
#Prepare final version for the CPACK use
|
||||
set(CPACK_PACKAGE_VERSION
|
||||
@@ -380,10 +284,7 @@ set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/postun
|
||||
#Set the names now using CPACK utility
|
||||
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
# Remove dependency on rocm-core if -DROCM_DEP_ROCMCORE=ON not given to cmake
|
||||
if(NOT ROCM_DEP_ROCMCORE)
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_PACKAGE_REQUIRES ${CPACK_RPM_PACKAGE_REQUIRES})
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS})
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
|
||||
generic_package_post()
|
||||
|
||||
@@ -17,7 +17,7 @@ installed to query firmware information and hardware IPs.
|
||||
## Additional Required software for building
|
||||
|
||||
In order to build the AMD SMI library, the following components are required. Note that the software versions listed are what was used in development. Earlier versions are not guaranteed to work:
|
||||
* CMake (v3.5.0)
|
||||
* CMake (v3.11.0)
|
||||
* g++ (5.4.0)
|
||||
|
||||
In order to build the latest documentation, the following are required:
|
||||
@@ -27,17 +27,19 @@ In order to build the latest documentation, the following are required:
|
||||
The source code for AMD SMI is available on Github.
|
||||
|
||||
After the AMD SMI library git repository has been cloned to a local Linux machine, building the library is achieved by following the typical CMake build sequence. Specifically,
|
||||
##### ```$ mkdir -p build```
|
||||
##### ```$ cd build```
|
||||
##### ```$ cmake <location of root of AMD SMI library CMakeLists.txt>```
|
||||
##### ```$ make```
|
||||
##### ```# Install library file and header; default location is /opt/rocm```
|
||||
##### ```$ make install```
|
||||
```bash
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake <location of root of AMD SMI library CMakeLists.txt>
|
||||
make -j $(nproc)
|
||||
# Install library file and header; default location is /opt/rocm
|
||||
make install```
|
||||
|
||||
The built library will appear in the `build` folder.
|
||||
|
||||
To build the rpm and deb packages follow the above steps with:
|
||||
##### ```$ make package```
|
||||
```bash
|
||||
make package```
|
||||
|
||||
## Documentation
|
||||
|
||||
@@ -47,13 +49,12 @@ The reference manual, `refman.pdf` will be in the `latex` directory upon a succe
|
||||
|
||||
In order to verify the build and capability of AMD SMI on your system and to see an example of how AMD SMI can be used, you may build and run the tests that are available in the repo. To build the tests, follow these steps:
|
||||
|
||||
##### ```# Set environment variables used in CMakeLists.txt file```
|
||||
##### ```$ AMDSMI_INC_DIR=<include dir, containing amd_smi/amd_smi.h>```
|
||||
##### ```$ AMDSMI_LIB_DIR=<the folder containing AMDSMI library>```
|
||||
##### ```$ mkdir <location for test build>```
|
||||
##### ```$ cd <location for test build>```
|
||||
##### ```$ cmake -DAMDSMI_INC_DIR=$AMDSMI_INC_DIR -DAMDSMI_LIB_DIR=$AMDSMI_LIB_DIR <AMD SMI source root>/tests/amd_smi_test```
|
||||
##### ```$ make```
|
||||
```bash
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -DBUILD_TESTS=ON <location of root of AMD SMI library CMakeLists.txt>
|
||||
make -j $(nproc)
|
||||
```
|
||||
|
||||
## Run the Tests
|
||||
|
||||
@@ -75,7 +76,7 @@ When AMD-SMI is no longer being used, `amdsmi_shut_down()` should be called. Thi
|
||||
|
||||
A simple "Hello World" type program that displays the temperature of detected devices would look like this:
|
||||
|
||||
```
|
||||
```c++
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include "amd_smi/amd_smi.h"
|
||||
|
||||
@@ -1,27 +1,28 @@
|
||||
# - Config file for the rocm_smi package
|
||||
# - Config file for the amd_smi package
|
||||
# It defines the following variables
|
||||
# ROCM_SMI_INCLUDE_DIRS - include directories for rocm_smi
|
||||
# ROCM_SMI_LIBRARIES - libraries to link against
|
||||
# AMD_SMI_INCLUDE_DIRS - include directories for amd_smi
|
||||
# AMD_SMI_LIBRARIES - libraries to link against
|
||||
|
||||
# Compute paths
|
||||
@PACKAGE_INIT@
|
||||
get_filename_component(ROCM_SMI_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(AMD_SMI_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
set_and_check( amd_smi_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@" )
|
||||
set_and_check( AMD_SMI_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@" )
|
||||
set_and_check( AMD_SMI_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@" )
|
||||
set_and_check( amd_smi_LIB_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@" )
|
||||
set_and_check( AMD_SMI_LIB_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@" )
|
||||
set_and_check( AMD_SMI_LIB_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@" )
|
||||
|
||||
set_and_check( rocm_smi_INCLUDE_DIR "@CMAKE_INSTALL_INCLUDEDIR@" )
|
||||
set_and_check( ROCM_SMI_INCLUDE_DIR "@CMAKE_INSTALL_INCLUDEDIR@" )
|
||||
set_and_check( ROCM_SMI_INCLUDE_DIRS "@CMAKE_INSTALL_INCLUDEDIR@" )
|
||||
set_and_check( rocm_smi_LIB_DIR "@CMAKE_INSTALL_LIBDIR@" )
|
||||
set_and_check( ROCM_SMI_LIB_DIR "@CMAKE_INSTALL_LIBDIR@" )
|
||||
set_and_check( ROCM_SMI_LIB_DIRS "@PACKAGE_CMAKE_INSTALL_LIBDIR@" )
|
||||
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
if(NOT TARGET rocm_smi AND NOT rocm_smi_BINARY_DIR)
|
||||
include("${ROCM_SMI_CMAKE_DIR}/rocm_smiTargets.cmake")
|
||||
if(NOT TARGET amd_smi AND NOT amd_smi_BINARY_DIR)
|
||||
include("${AMD_SMI_CMAKE_DIR}/amd_smiTargets.cmake")
|
||||
endif()
|
||||
|
||||
# These are IMPORTED targets created by RocmSmiTargets.cmake
|
||||
# These are IMPORTED targets created by AmdSmiTargets.cmake
|
||||
# TODO: Need to check if OAM libraries are needed here!
|
||||
set(ROCM_SMI_LIBRARIES rocm_smi64)
|
||||
set(ROCM_SMI_LIBRARY rocm_smi64)
|
||||
set(AMD_SMI_LIBRARIES amd_smi)
|
||||
set(AMD_SMI_LIBRARY amd_smi)
|
||||
|
||||
check_required_components(rocm_smi)
|
||||
check_required_components(amd_smi)
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
# This module provides common functions used for building
|
||||
# and packaging ROCm projects
|
||||
|
||||
option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" ON)
|
||||
option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON)
|
||||
|
||||
function(generic_add_rocm)
|
||||
set(ROCM_DIR
|
||||
"/opt/rocm"
|
||||
CACHE STRING "ROCm directory.")
|
||||
if(DEFINED ENV{ROCM_RPATH} AND NOT DEFINED LIB_RUNPATH)
|
||||
set(LIB_RUNPATH "\$ORIGIN:\$ORIGIN/../lib:\$ORIGIN/../lib64" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_INSTALL_PREFIX ${ROCM_DIR} CACHE STRING "Default installation directory.")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "Default packaging prefix.")
|
||||
set(SHARE_INSTALL_PREFIX "share/${CMAKE_PROJECT_NAME}" CACHE STRING "Tests and Example install directory")
|
||||
# add package search paths
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/local PARENT_SCOPE)
|
||||
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/lib64 /usr/lib/x86_64-linux-gnu PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(generic_package)
|
||||
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.4.0)
|
||||
message("Compiler version is " ${CMAKE_CXX_COMPILER_VERSION})
|
||||
message(FATAL_ERROR "Require at least gcc-5.4.0")
|
||||
endif()
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2" PARENT_SCOPE)
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -O0 -DDEBUG" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# Add address sanitizer
|
||||
if(${ADDRESS_SANITIZER})
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g" PARENT_SCOPE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address" PARENT_SCOPE)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -shared-libasan" PARENT_SCOPE)
|
||||
message(STATUS "ADDRESS_SANITIZE: CMAKE_CXX_FLAGS=: ${CMAKE_CXX_FLAGS}")
|
||||
message(STATUS "ADDRESS_SANITIZE: CMAKE_EXE_LINKER_FLAGS=: ${CMAKE_EXE_LINKER_FLAGS}")
|
||||
endif()
|
||||
|
||||
# Clang does not set the build-id
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id=sha1" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# configure packaging
|
||||
# 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.txt"
|
||||
CACHE STRING "")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE
|
||||
"MIT"
|
||||
CACHE STRING "")
|
||||
set(CPACK_GENERATOR
|
||||
"DEB;RPM"
|
||||
CACHE STRING "Default packaging generators.")
|
||||
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)
|
||||
|
||||
# Debian package specific variables
|
||||
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE} PARENT_SCOPE)
|
||||
else()
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE "local" PARENT_SCOPE)
|
||||
endif()
|
||||
message("Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}")
|
||||
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" PARENT_SCOPE)
|
||||
|
||||
# RPM package specific variables
|
||||
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE} PARENT_SCOPE)
|
||||
else()
|
||||
set(CPACK_RPM_PACKAGE_RELEASE "local" PARENT_SCOPE)
|
||||
endif()
|
||||
message("Using CPACK_RPM_PACKAGE_RELEASE ${CPACK_RPM_PACKAGE_RELEASE}")
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT" PARENT_SCOPE)
|
||||
set(CPACK_RPM_PACKAGE_AUTOREQ 0 PARENT_SCOPE)
|
||||
set(CPACK_RPM_PACKAGE_AUTOPROV 0 PARENT_SCOPE)
|
||||
list(
|
||||
APPEND
|
||||
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
||||
"/lib"
|
||||
"/usr/sbin"
|
||||
"/lib/systemd"
|
||||
"/lib/systemd/system"
|
||||
"/usr"
|
||||
"/opt")
|
||||
|
||||
# PACKAGE-tests need PACKAGE
|
||||
set(CPACK_DEBIAN_TESTS_PACKAGE_DEPENDS "${CPACK_PACKAGE_NAME}" PARENT_SCOPE)
|
||||
set(CPACK_RPM_TESTS_PACKAGE_REQUIRES "${CPACK_PACKAGE_NAME}" PARENT_SCOPE)
|
||||
|
||||
# Treat runtime group as package base.
|
||||
# Without it - the base package would be named 'rdc-runtime'
|
||||
# resulting in rdc-runtime*.deb and rdc-runtime*.rpm
|
||||
set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "${CPACK_PACKAGE_NAME}" PARENT_SCOPE)
|
||||
set(CPACK_RPM_RUNTIME_PACKAGE_NAME "${CPACK_PACKAGE_NAME}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# this function goes after 'include(CPack)'
|
||||
function(generic_package_post)
|
||||
# PACKAGE package, no postfix
|
||||
cpack_add_component_group("runtime")
|
||||
cpack_add_component(dev GROUP runtime)
|
||||
cpack_add_component(unspecified GROUP runtime)
|
||||
|
||||
# PACKAGE-tests package, -tests postfix
|
||||
cpack_add_component_group("tests")
|
||||
cpack_add_component(tests GROUP tests)
|
||||
endfunction()
|
||||
@@ -0,0 +1,27 @@
|
||||
# TODO: Provide a standalone CMakeLists.txt project example
|
||||
# that can link against existing amd-smi library
|
||||
|
||||
# copy .cc files into install directory
|
||||
install(
|
||||
DIRECTORY ./
|
||||
DESTINATION share/example/amd-smi
|
||||
FILES_MATCHING
|
||||
PATTERN "*.cc")
|
||||
|
||||
# copy cmake file into install directory
|
||||
install(
|
||||
FILES CMakeLists.txt.in
|
||||
RENAME CMakeLists.txt
|
||||
DESTINATION share/example/amd-smi)
|
||||
|
||||
# compile example files but do not install
|
||||
# this is only useful if running from build directory
|
||||
set(SMI_DRM_EXAMPLE_EXE "amd_smi_drm_ex")
|
||||
add_executable(${SMI_DRM_EXAMPLE_EXE} "amd_smi_drm_example.cc")
|
||||
target_link_libraries(${SMI_DRM_EXAMPLE_EXE} ${AMD_SMI_TARGET})
|
||||
add_dependencies(${SMI_DRM_EXAMPLE_EXE} ${AMD_SMI_TARGET})
|
||||
|
||||
set(SMI_NODRM_EXAMPLE_EXE "amd_smi_nodrm_ex")
|
||||
add_executable(${SMI_NODRM_EXAMPLE_EXE} "amd_smi_nodrm_example.cc")
|
||||
target_link_libraries(${SMI_NODRM_EXAMPLE_EXE} ${AMD_SMI_TARGET})
|
||||
add_dependencies(${SMI_NODRM_EXAMPLE_EXE} ${AMD_SMI_TARGET})
|
||||
@@ -0,0 +1,23 @@
|
||||
cmake_minimum_required(VERSION 3.11)
|
||||
|
||||
option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" ON)
|
||||
option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON)
|
||||
|
||||
project(main LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD
|
||||
11
|
||||
CACHE STRING "The C++ standard to use")
|
||||
|
||||
find_package(amd_smi
|
||||
HINTS
|
||||
"../../../lib/cmake"
|
||||
"../../../lib64/cmake"
|
||||
"${ROCM_DIR}/lib/cmake"
|
||||
"${ROCM_DIR}/lib64/cmake"
|
||||
CONFIG REQUIRED)
|
||||
link_libraries(amd_smi)
|
||||
|
||||
# compile example files but do not install
|
||||
add_executable(amd_smi_drm_ex "amd_smi_drm_example.cc")
|
||||
add_executable(amd_smi_nodrm_ex "amd_smi_nodrm_example.cc")
|
||||
@@ -15,11 +15,9 @@ 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("--------RSMI Lib Dir: " ${RSMI_LIB_DIR})
|
||||
# message("--------RSMI Inc Dir: " ${RSMI_INC_DIR})
|
||||
# message("")
|
||||
|
||||
set(ROCM_SMI "amd_smi")
|
||||
set(ROCM_SMI "rocm_smi")
|
||||
set(ROCM_SMI_COMPONENT "lib${ROCM_SMI}")
|
||||
set(ROCM_SMI_TARGET "${ROCM_SMI}64")
|
||||
|
||||
@@ -50,19 +48,13 @@ set(${ROCM_SMI}_VERSION_BUILD "0")
|
||||
message("SOVERSION: ${SO_VERSION_STRING}")
|
||||
|
||||
# Create a configure file to get version info from within library
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/${ROCM_SMI_TARGET}Config.in"
|
||||
"${PROJECT_SOURCE_DIR}/include/amd_smi/${ROCM_SMI_TARGET}Config.h")
|
||||
configure_file("src/${ROCM_SMI_TARGET}Config.in"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/include/rocm_smi/${ROCM_SMI_TARGET}Config.h")
|
||||
|
||||
set(rocm_smi_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
set(rocm_smi_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(rocm_smi_VERSION_PATCH "0")
|
||||
set(rocm_smi_VERSION_BUILD "0")
|
||||
configure_file("${PROJECT_SOURCE_DIR}/rocm_smi/src/rocm_smi64Config.in"
|
||||
"${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/rocm_smi64Config.h")
|
||||
|
||||
set(RSMI_SRC_DIR "src")
|
||||
set(RSMI_INC_DIR "include")
|
||||
set(RSMI_DOCS_DIR "docs")
|
||||
|
||||
set(SMI_EXAMPLE_EXE "rocm_smi_ex")
|
||||
|
||||
@@ -93,25 +85,32 @@ endif()
|
||||
|
||||
#file reorganization changes
|
||||
#rocm_smi.py moved to libexec/rocm_smi. so creating rocm-smi symlink
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
add_custom_target(
|
||||
link-rocm-smi ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink ../libexec/${ROCM_SMI}/rocm_smi.py
|
||||
${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
|
||||
#file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
#add_custom_target(
|
||||
# link-rocm-smi ALL
|
||||
# WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
# COMMAND ${CMAKE_COMMAND} -E create_symlink ../libexec/${ROCM_SMI}/rocm_smi.py
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
|
||||
|
||||
## Add the install directives for the runtime library.
|
||||
install(
|
||||
TARGETS ${ROCM_SMI_TARGET}
|
||||
EXPORT rocm_smiTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smi.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/${ROCM_SMI_TARGET}Config.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/kfd_ioctl.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi)
|
||||
#install(
|
||||
# TARGETS ${ROCM_SMI_TARGET}
|
||||
# EXPORT rocm_smiTargets
|
||||
# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
#
|
||||
#install(
|
||||
# FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/rocm_smi/rocm_smi.h
|
||||
# DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi
|
||||
# COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
#install(
|
||||
# FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/rocm_smi/${ROCM_SMI_TARGET}Config.h
|
||||
# DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi
|
||||
# COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
#install(
|
||||
# FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/rocm_smi/kfd_ioctl.h
|
||||
# DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi
|
||||
# COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
#install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/python_smi_tools/rsmiBindings.py
|
||||
# DESTINATION libexec/${ROCM_SMI})
|
||||
#install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/python_smi_tools/rocm_smi.py
|
||||
@@ -121,36 +120,4 @@ install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/kfd_ioctl.h
|
||||
#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi
|
||||
# DESTINATION bin)
|
||||
|
||||
# Generate Doxygen documentation
|
||||
find_package(Doxygen)
|
||||
find_package(LATEX COMPONENTS PDFLATEX)
|
||||
|
||||
if(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
set(ASMI_MANUAL_NAME "AMD_SMI_Manual")
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../docs/amd_smi_doxygen.cfg ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../docs/amd_smi_doxygen.cfg
|
||||
"${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smi.h"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
COMMAND make > /dev/null
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../docs/${ASMI_MANUAL_NAME}_new.pdf
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/latex)
|
||||
|
||||
add_custom_target(docs DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf)
|
||||
|
||||
add_dependencies(${ROCM_SMI_TARGET} docs)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
DESTINATION share/doc/${ROCM_SMI}
|
||||
RENAME ${ASMI_MANUAL_NAME}.pdf)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../README.md DESTINATION share/doc/${ROCM_SMI}/)
|
||||
else()
|
||||
message("Doxygen or Latex is not found. Will not generate documents.")
|
||||
endif(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
# NOTE: Doxygen generation has been stripped
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
#
|
||||
# Minimum version of cmake required
|
||||
#
|
||||
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
message(" CMake AMD SMI (Library) ")
|
||||
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 "amd_smi_so_ver")
|
||||
|
||||
set(SRC_DIR "amd_smi")
|
||||
set(INC_DIR "${PROJECT_SOURCE_DIR}/include/amd_smi")
|
||||
|
||||
set(SRC_LIST
|
||||
"${SRC_DIR}/amd_smi.cc"
|
||||
"${SRC_DIR}/amd_smi_common.cc"
|
||||
"${SRC_DIR}/amd_smi_drm.cc"
|
||||
"${SRC_DIR}/amd_smi_gpu_device.cc"
|
||||
"${SRC_DIR}/amd_smi_lib_loader.cc"
|
||||
"${SRC_DIR}/amd_smi_socket.cc"
|
||||
"${SRC_DIR}/amd_smi_system.cc"
|
||||
"${SRC_DIR}/amd_smi_utils.cc"
|
||||
"${SRC_DIR}/amd_smi_uuid.cc"
|
||||
"${SRC_DIR}/fdinfo.cc"
|
||||
"${CMN_SRC_LIST}")
|
||||
set(INC_LIST
|
||||
"${INC_DIR}/amd_smi.h"
|
||||
"${INC_DIR}/impl/amd_smi_common.h"
|
||||
"${INC_DIR}/impl/amd_smi_device.h"
|
||||
"${INC_DIR}/impl/amd_smi_drm.h"
|
||||
"${INC_DIR}/impl/amd_smi_gpu_device.h"
|
||||
"${INC_DIR}/impl/amd_smi_lib_loader.h"
|
||||
"${INC_DIR}/impl/amd_smi_socket.h"
|
||||
"${INC_DIR}/impl/amd_smi_system.h"
|
||||
"${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/rocm_smi.h"
|
||||
"${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/rocm_smi_utils.h")
|
||||
|
||||
# VERSION_* variables should be set by get_version_from_tag
|
||||
message("Package version: ${PKG_VERSION_STR}")
|
||||
|
||||
# Debian package specific variables
|
||||
# Set a default value for the package version
|
||||
get_version_from_tag("1.0.0.0" ${SO_VERSION_GIT_TAG_PREFIX} GIT)
|
||||
|
||||
# VERSION_* variables should be set by get_version_from_tag
|
||||
if(${ROCM_PATCH_VERSION})
|
||||
set(VERSION_PATCH ${ROCM_PATCH_VERSION})
|
||||
set(SO_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||
else()
|
||||
set(SO_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}")
|
||||
endif()
|
||||
set(${AMD_SMI}_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||
set(${AMD_SMI}_VERSION_MINOR "${VERSION_MINOR}")
|
||||
set(${AMD_SMI}_VERSION_PATCH "0")
|
||||
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")
|
||||
|
||||
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)
|
||||
|
||||
# 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}>")
|
||||
|
||||
## 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}")
|
||||
|
||||
## 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})
|
||||
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}
|
||||
EXPORT amd_smiTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${AMD_SMI_COMPONENT})
|
||||
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smi.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/include/amd_smi/${AMD_SMI_TARGET}Config.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/rocm_smi/include/rocm_smi/kfd_ioctl.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amd_smi)
|
||||
#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)
|
||||
|
||||
# Generate Doxygen documentation
|
||||
find_package(Doxygen)
|
||||
find_package(LATEX COMPONENTS PDFLATEX)
|
||||
|
||||
if(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
set(ASMI_MANUAL_NAME "AMD_SMI_Manual")
|
||||
configure_file(${PROJECT_SOURCE_DIR}/docs/amd_smi_doxygen.cfg ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
DEPENDS ${PROJECT_SOURCE_DIR}/docs/amd_smi_doxygen.cfg "${PROJECT_SOURCE_DIR}/include/amd_smi/amd_smi.h"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
COMMAND make > /dev/null
|
||||
COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf ${PROJECT_SOURCE_DIR}/docs/${ASMI_MANUAL_NAME}_new.pdf
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/latex)
|
||||
|
||||
add_custom_target(docs DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf)
|
||||
|
||||
add_dependencies(${AMD_SMI_TARGET} docs)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
DESTINATION share/doc/${AMD_SMI}
|
||||
RENAME ${ASMI_MANUAL_NAME}.pdf)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/README.md DESTINATION share/doc/${AMD_SMI})
|
||||
else()
|
||||
message("Doxygen or Latex is not found. Will not generate documents.")
|
||||
endif(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
+3
-3
@@ -43,8 +43,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_AMD_SMI_AMD_SMI64CONFIG_H_
|
||||
#define INCLUDE_AMD_SMI_AMD_SMI64CONFIG_H_
|
||||
#ifndef INCLUDE_AMD_SMI_AMD_SMICONFIG_H_
|
||||
#define INCLUDE_AMD_SMI_AMD_SMICONFIG_H_
|
||||
|
||||
// This file is generated on build.
|
||||
|
||||
@@ -53,4 +53,4 @@
|
||||
#define amd_smi_VERSION_PATCH @amd_smi_VERSION_PATCH@
|
||||
#define amd_smi_VERSION_BUILD "@amd_smi_VERSION_BUILD@"
|
||||
|
||||
#endif // INCLUDE_AMD_SMI_AMD_SMI64CONFIG_H_
|
||||
#endif // INCLUDE_AMD_SMI_AMD_SMICONFIG_H_
|
||||
@@ -2,7 +2,7 @@
|
||||
option(INSTALL_GTEST "Install GTest (only useful if GTest is not already installed)" OFF)
|
||||
|
||||
# Try to find googletest
|
||||
find_package(GTest 1.12.0)
|
||||
find_package(GTest 1.11.0)
|
||||
|
||||
# GTest_FOUND is set to TRUE if ANY version is found
|
||||
# GTest_VERSION is set if 1.11.0 or newer version is found
|
||||
@@ -12,7 +12,7 @@ if(NOT GTest_FOUND STREQUAL "TRUE" OR NOT DEFINED GTest_VERSION)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG release-1.12.0)
|
||||
GIT_TAG release-1.11.0)
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
endif()
|
||||
|
||||
@@ -28,29 +28,24 @@ endif()
|
||||
#
|
||||
# Build Src directory
|
||||
# Build Binary directory
|
||||
# Build Type: Debug Vs Release, 32 Vs 64
|
||||
# Build Type: Debug Vs Release
|
||||
# Compiler Version, etc
|
||||
#
|
||||
message("")
|
||||
message("Build Configuration:")
|
||||
message("-------------IS64BIT: " ${IS64BIT})
|
||||
message("-----------BuildType: " ${BUILD_TYPE})
|
||||
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("--------RSMI Lib Dir: " ${AMDSMI_LIB_DIR})
|
||||
message("")
|
||||
|
||||
|
||||
# Other source directories
|
||||
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/functional functionalSources)
|
||||
|
||||
link_directories(${AMDSMI_LIB_DIR})
|
||||
|
||||
set(TEST "amdsmitst64")
|
||||
set(TEST "amdsmitst")
|
||||
|
||||
# Source files
|
||||
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} tstSources)
|
||||
@@ -61,10 +56,9 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
|
||||
# Build rules
|
||||
add_executable(${TEST} ${tstSources} ${functionalSources})
|
||||
|
||||
target_link_libraries(${TEST} amd_smi64 c stdc++ pthread GTest::gtest_main)
|
||||
target_link_libraries(${TEST} amd_smi c stdc++ pthread GTest::gtest_main)
|
||||
|
||||
install(
|
||||
TARGETS ${TEST}
|
||||
ARCHIVE DESTINATION ${PROJECT_BINARY_DIR}/lib
|
||||
LIBRARY DESTINATION ${PROJECT_BINARY_DIR}/lib
|
||||
RUNTIME DESTINATION ${PROJECT_BINARY_DIR}/bin)
|
||||
DESTINATION ${SHARE_INSTALL_PREFIX}/tests/amd_smi
|
||||
COMPONENT tests)
|
||||
|
||||
@@ -28,28 +28,23 @@ endif()
|
||||
#
|
||||
# Build Src directory
|
||||
# Build Binary directory
|
||||
# Build Type: Debug Vs Release, 32 Vs 64
|
||||
# Build Type: Debug Vs Release
|
||||
# Compiler Version, etc
|
||||
#
|
||||
message("")
|
||||
message("Build Configuration:")
|
||||
message("-------------IS64BIT: " ${IS64BIT})
|
||||
message("-----------BuildType: " ${BUILD_TYPE})
|
||||
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("--------RSMI Lib Dir: " ${RSMI_LIB_DIR})
|
||||
message("")
|
||||
|
||||
|
||||
# Other source directories
|
||||
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/functional functionalSources)
|
||||
|
||||
link_directories(${RSMI_LIB_DIR})
|
||||
|
||||
set(TEST "rsmitst64")
|
||||
|
||||
# Source files
|
||||
@@ -61,10 +56,9 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
|
||||
# Build rules
|
||||
add_executable(${TEST} ${tstSources} ${functionalSources})
|
||||
|
||||
target_link_libraries(${TEST} amd_smi64 c stdc++ pthread GTest::gtest_main)
|
||||
target_link_libraries(${TEST} rocm_smi64 c stdc++ pthread GTest::gtest_main)
|
||||
|
||||
install(
|
||||
TARGETS ${TEST}
|
||||
ARCHIVE DESTINATION ${PROJECT_BINARY_DIR}/lib
|
||||
LIBRARY DESTINATION ${PROJECT_BINARY_DIR}/lib
|
||||
RUNTIME DESTINATION ${PROJECT_BINARY_DIR}/bin)
|
||||
#install(
|
||||
# TARGETS ${TEST}
|
||||
# DESTINATION ${SHARE_INSTALL_PREFIX}/tests/amd_smi
|
||||
# COMPONENT tests)
|
||||
|
||||
Ссылка в новой задаче
Block a user