SWDEV-351540 - ASAN packaging for rocm_smi_lib
Change-Id: Iab354d02d261a0270a3d118b825835fc6f021c15
[ROCm/rocm_smi_lib commit: 778f3b7fdc]
Этот коммит содержится в:
@@ -143,10 +143,42 @@ set(CMN_INC_LIST ${CMN_INC_LIST} "${COMMON_INC_DIR}/rocm_smi_io_link.h")
|
||||
set(CMN_INC_LIST ${CMN_INC_LIST} "${COMMON_INC_DIR}/rocm_smi.h")
|
||||
set(CMN_INC_LIST ${CMN_INC_LIST} "${SHR_MUTEX_DIR}/shared_mutex.h")
|
||||
|
||||
## set components
|
||||
if(ENABLE_ASAN_PACKAGING)
|
||||
# ASAN Package requires only asan component with libraries and license file
|
||||
set(CPACK_COMPONENTS_ALL asan)
|
||||
else()
|
||||
set(CPACK_COMPONENTS_ALL dev)
|
||||
endif()
|
||||
|
||||
# Enable Component Mode & Install Settings
|
||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
|
||||
#Component Specific Configuration/Flags
|
||||
set(CPACK_DEBIAN_ASAN_PACKAGE_NAME ${ROCM_SMI_PACKAGE}-asan)
|
||||
set(CPACK_DEBIAN_DEV_PACKAGE_NAME ${ROCM_SMI_PACKAGE})
|
||||
set(CPACK_RPM_ASAN_PACKAGE_NAME ${ROCM_SMI_PACKAGE}-asan)
|
||||
set(CPACK_RPM_DEV_PACKAGE_NAME ${ROCM_SMI_PACKAGE})
|
||||
|
||||
set (CPACK_DEBIAN_ASAN_PACKAGE_PROVIDES "${ROCM_SMI_PACKAGE}-asan")
|
||||
set (CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "python3, rocm-core-asan")
|
||||
set (CPACK_DEBIAN_DEV_PACKAGE_PROVIDES "rocm-smi")
|
||||
set (CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "python3, rocm-core")
|
||||
set (CPACK_RPM_ASAN_PACKAGE_PROVIDES "${ROCM_SMI_PACKAGE}-asan")
|
||||
set (CPACK_RPM_ASAN_PACKAGE_REQUIRES "python3, rocm-core-asan")
|
||||
set (CPACK_RPM_DEV_PACKAGE_PROVIDES "rocm-smi")
|
||||
set (CPACK_RPM_DEV_PACKAGE_REQUIRES "python3, rocm-core")
|
||||
|
||||
|
||||
add_subdirectory("rocm_smi")
|
||||
add_subdirectory("oam")
|
||||
|
||||
option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON)
|
||||
# Disable file reorg backward compatibility for ASAN packaging
|
||||
if(NOT ENABLE_ASAN_PACKAGING)
|
||||
option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON)
|
||||
endif()
|
||||
|
||||
if(FILE_REORG_BACKWARD_COMPATIBILITY)
|
||||
# To enable/disable #error in wrapper header files
|
||||
if(NOT DEFINED ROCM_HEADER_WRAPPER_WERROR)
|
||||
@@ -166,11 +198,12 @@ if(FILE_REORG_BACKWARD_COMPATIBILITY)
|
||||
include(rocm_smi-backward-compat.cmake)
|
||||
endif()
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(
|
||||
rocm_smi-config.cmake.in
|
||||
@@ -201,14 +234,22 @@ export(TARGETS ${ROCM_SMI_TARGET} ${OAM_TARGET}
|
||||
# Export the package for use from the build-tree
|
||||
# (this registers the build-tree with a global CMake-registry)
|
||||
export(PACKAGE rocm_smi)
|
||||
|
||||
# Create the rocm_smiConfig.cmake and rocm_smiConfigVersion files
|
||||
# ... for the build tree
|
||||
install(EXPORT rocm_smiTargets DESTINATION
|
||||
"${CMAKE_INSTALL_LIBDIR}/cmake/${ROCM_SMI}" COMPONENT dev)
|
||||
install(EXPORT rocm_smiTargets
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${ROCM_SMI}"
|
||||
COMPONENT dev)
|
||||
|
||||
#License file
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "NCSA")
|
||||
install( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI} RENAME LICENSE.txt)
|
||||
# install license file in share/doc/rocm_smi-asan folder
|
||||
install(FILES ${CPACK_RESOURCE_FILE_LICENSE}
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI}-asan RENAME LICENSE.txt
|
||||
COMPONENT asan)
|
||||
install( FILES ${CPACK_RESOURCE_FILE_LICENSE}
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI} RENAME LICENSE.txt
|
||||
COMPONENT dev)
|
||||
|
||||
###########################
|
||||
# Packaging directives
|
||||
@@ -216,7 +257,11 @@ install( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DATADI
|
||||
set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators.")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm" 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})
|
||||
if( ENABLE_ASAN_PACKAGING )
|
||||
set(CPACK_PACKAGE_NAME ${ROCM_SMI_PACKAGE}-asan)
|
||||
else()
|
||||
set(CPACK_PACKAGE_NAME ${ROCM_SMI_PACKAGE})
|
||||
endif()
|
||||
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")
|
||||
@@ -236,8 +281,8 @@ 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_SUGGESTS "sudo")
|
||||
|
||||
## Process the Debian install/remove scripts to update the CPACK variables
|
||||
configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst.in DEBIAN/postinst @ONLY )
|
||||
@@ -279,8 +324,24 @@ 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})
|
||||
string(REGEX REPLACE ",? ?rocm-core-asan" "" CPACK_RPM_ASAN_PACKAGE_REQUIRES ${CPACK_RPM_ASAN_PACKAGE_REQUIRES})
|
||||
string(REGEX REPLACE ",? ?rocm-core-asan" "" CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS})
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_DEV_PACKAGE_REQUIRES ${CPACK_RPM_DEV_PACKAGE_REQUIRES})
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS})
|
||||
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)
|
||||
|
||||
cpack_add_component(
|
||||
dev
|
||||
DISPLAY_NAME "Development"
|
||||
DESCRIPTION "Development needed header files for ROCM-SMI"
|
||||
DEPENDS dev)
|
||||
|
||||
cpack_add_component(
|
||||
asan
|
||||
DISPLAY_NAME "ASAN"
|
||||
DESCRIPTION "ASAN libraries for the ROCM-SMI"
|
||||
DEPENDS asan)
|
||||
|
||||
@@ -97,16 +97,19 @@ target_include_directories(${OAM_TARGET}
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||
"$<INSTALL_INTERFACE:{OAM_NAME}/include>")
|
||||
|
||||
|
||||
## Add the install directives for the runtime library.
|
||||
install(TARGETS ${OAM_TARGET}
|
||||
EXPORT rocm_smiTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${OAM_COMPONENT})
|
||||
COMPONENT dev)
|
||||
install(TARGETS ${OAM_TARGET}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT asan)
|
||||
|
||||
install(FILES ${COMMON_SRC_ROOT}/oam/include/oam/oam_mapi.h
|
||||
${COMMON_SRC_ROOT}/oam/include/oam/amd_oam.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/oam)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/oam
|
||||
COMPONENT dev)
|
||||
|
||||
# Generate Doxygen documentation
|
||||
if (DOXYGEN_FOUND)
|
||||
|
||||
@@ -184,9 +184,17 @@ endfunction()
|
||||
create_header_template()
|
||||
#Use template header file and generater wrapper header files
|
||||
generate_wrapper_header()
|
||||
install(DIRECTORY ${RSMI_WRAPPER_INC_DIR} DESTINATION ${ROCM_SMI}/include)
|
||||
install(DIRECTORY ${OAM_WRAPPER_INC_DIR} DESTINATION ${OAM_TARGET_NAME}/include)
|
||||
install(DIRECTORY ${RSMI_WRAPPER_INC_DIR}
|
||||
DESTINATION ${ROCM_SMI}/include
|
||||
COMPONENT dev)
|
||||
install(DIRECTORY ${OAM_WRAPPER_INC_DIR}
|
||||
DESTINATION ${OAM_TARGET_NAME}/include
|
||||
COMPONENT dev)
|
||||
# Create symlink to library files
|
||||
create_library_symlink()
|
||||
install(DIRECTORY ${RSMI_WRAPPER_LIB_DIR} DESTINATION ${ROCM_SMI} COMPONENT lib${ROCM_SMI})
|
||||
install(DIRECTORY ${OAM_WRAPPER_LIB_DIR} DESTINATION ${OAM_TARGET_NAME} COMPONENT lib${OAM_TARGET_NAME} )
|
||||
install(DIRECTORY ${RSMI_WRAPPER_LIB_DIR}
|
||||
DESTINATION ${ROCM_SMI}
|
||||
COMPONENT dev)
|
||||
install(DIRECTORY ${OAM_WRAPPER_LIB_DIR}
|
||||
DESTINATION ${OAM_TARGET_NAME}
|
||||
COMPONENT dev )
|
||||
|
||||
@@ -107,6 +107,7 @@ if ("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} lib${ROCM_SMI_TARGET}.so.${SO_VERSION_STRING})
|
||||
endif()
|
||||
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)
|
||||
@@ -119,23 +120,31 @@ add_custom_target(link-rocm-smi ALL
|
||||
install(TARGETS ${ROCM_SMI_TARGET}
|
||||
EXPORT rocm_smiTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${ROCM_SMI_COMPONENT})
|
||||
COMPONENT dev)
|
||||
install(TARGETS ${ROCM_SMI_TARGET}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT asan)
|
||||
|
||||
install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/rocm_smi.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi
|
||||
COMPONENT dev)
|
||||
install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/${ROCM_SMI_TARGET}Config.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi
|
||||
COMPONENT dev)
|
||||
install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/kfd_ioctl.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi)
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi
|
||||
COMPONENT dev)
|
||||
install(FILES ${COMMON_SRC_ROOT}/python_smi_tools/rsmiBindings.py
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI})
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI}
|
||||
COMPONENT dev)
|
||||
install(FILES ${COMMON_SRC_ROOT}/python_smi_tools/rocm_smi.py
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
|
||||
GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI})
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
|
||||
GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI}
|
||||
COMPONENT dev)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
COMPONENT dev)
|
||||
|
||||
# Generate Doxygen documentation
|
||||
find_package(Doxygen)
|
||||
@@ -162,9 +171,11 @@ if (DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
|
||||
add_dependencies(${ROCM_SMI_TARGET} docs)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI} RENAME ${RSMI_MANUAL_NAME}.pdf)
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI} RENAME ${RSMI_MANUAL_NAME}.pdf
|
||||
COMPONENT dev)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../README.md
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI}/)
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/${ROCM_SMI}/
|
||||
COMPONENT dev)
|
||||
else()
|
||||
message("Doxygen or Latex is not found. Will not generate documents.")
|
||||
endif(DOXYGEN_FOUND AND LATEX_FOUND)
|
||||
|
||||
@@ -101,12 +101,14 @@ if (INSTALL_GTEST)
|
||||
write_basic_package_version_file(${version_file} VERSION ${GOOGLETEST_VERSION} COMPATIBILITY AnyNewerVersion)
|
||||
install(EXPORT ${targets_export_name}
|
||||
NAMESPACE ${cmake_package_name}::
|
||||
DESTINATION ${cmake_files_install_dir})
|
||||
DESTINATION ${cmake_files_install_dir}
|
||||
COMPONENT dev)
|
||||
set(config_file "${generated_dir}/${cmake_package_name}Config.cmake")
|
||||
configure_package_config_file("${gtest_SOURCE_DIR}/cmake/Config.cmake.in"
|
||||
"${config_file}" INSTALL_DESTINATION ${cmake_files_install_dir})
|
||||
install(FILES ${version_file} ${config_file}
|
||||
DESTINATION ${cmake_files_install_dir})
|
||||
DESTINATION ${cmake_files_install_dir}
|
||||
COMPONENT dev)
|
||||
endif()
|
||||
|
||||
# Where Google Test's .h files can be found.
|
||||
|
||||
Ссылка в новой задаче
Block a user