ASAN Packaging for libhsakmt
Change-Id: I0a6232cdb61742aa81394bb49d2b5e890b6ada6f
[ROCm/ROCR-Runtime commit: 0f977fd1d8]
Esse commit está contido em:
@@ -196,10 +196,21 @@ set ( CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "Default install
|
||||
set ( CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "Default packaging prefix." )
|
||||
set ( CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators." )
|
||||
|
||||
## 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 devel )
|
||||
endif()
|
||||
|
||||
# Installs binaries and exports the library usage data to ${HSAKMT_TARGET}Targets
|
||||
install ( TARGETS ${HSAKMT_TARGET} EXPORT ${HSAKMT_TARGET}Targets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel )
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan )
|
||||
install ( TARGETS ${HSAKMT_TARGET}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel )
|
||||
|
||||
#install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT devel )
|
||||
|
||||
@@ -208,7 +219,10 @@ install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INS
|
||||
COMPONENT devel PATTERN "linux" EXCLUDE )
|
||||
|
||||
# Option to build header path migration helpers.
|
||||
option(INCLUDE_PATH_COMPATIBILITY "Generate backward compatible headers and include paths. Use of these headers will warn when included." ON)
|
||||
if( NOT ENABLE_ASAN_PACKAGING )
|
||||
option(INCLUDE_PATH_COMPATIBILITY "Generate backward compatible headers and include paths. Use of these headers will warn when included." ON)
|
||||
endif()
|
||||
|
||||
if(INCLUDE_PATH_COMPATIBILITY)
|
||||
# To enable/disable #error in wrapper header files
|
||||
if(NOT DEFINED ROCM_HEADER_WRAPPER_WERROR)
|
||||
@@ -226,7 +240,6 @@ if(INCLUDE_PATH_COMPATIBILITY)
|
||||
endif()
|
||||
include(hsakmt-backward-compat.cmake)
|
||||
endif()
|
||||
|
||||
# Record our usage data for clients find_package calls.
|
||||
install ( EXPORT ${HSAKMT_TARGET}Targets
|
||||
FILE ${HSAKMT_TARGET}Targets.cmake
|
||||
@@ -246,27 +259,28 @@ add_library( ${HSAKMT_TARGET}::${HSAKMT_TARGET} ALIAS ${HSAKMT_TARGET} )
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(${HSAKMT_TARGET}-config.cmake.in
|
||||
${HSAKMT_TARGET}-config.cmake
|
||||
INSTALL_DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET} )
|
||||
${HSAKMT_TARGET}-config.cmake
|
||||
INSTALL_DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET} )
|
||||
|
||||
write_basic_package_version_file(${HSAKMT_TARGET}-config-version.cmake
|
||||
VERSION ${BUILD_VERSION_STRING}
|
||||
COMPATIBILITY
|
||||
AnyNewerVersion)
|
||||
COMPATIBILITY
|
||||
AnyNewerVersion)
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_TARGET}-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_TARGET}-config-version.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_TARGET}-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${HSAKMT_TARGET}-config-version.cmake
|
||||
DESTINATION
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET}
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${HSAKMT_TARGET}
|
||||
COMPONENT devel)
|
||||
|
||||
# Optionally record the package's find module in the user's package cache.
|
||||
if ( NOT DEFINED EXPORT_TO_USER_PACKAGE_REGISTRY )
|
||||
set ( EXPORT_TO_USER_PACKAGE_REGISTRY "off" )
|
||||
endif()
|
||||
set ( EXPORT_TO_USER_PACKAGE_REGISTRY ${EXPORT_TO_USER_PACKAGE_REGISTRY} CACHE BOOL "Add cmake package config location to the user's cmake package registry.")
|
||||
set ( EXPORT_TO_USER_PACKAGE_REGISTRY ${EXPORT_TO_USER_PACKAGE_REGISTRY}
|
||||
CACHE BOOL "Add cmake package config location to the user's cmake package registry.")
|
||||
if(${EXPORT_TO_USER_PACKAGE_REGISTRY})
|
||||
# Enable writing to the registry
|
||||
set(CMAKE_EXPORT_PACKAGE_REGISTRY ON)
|
||||
@@ -300,6 +314,7 @@ set ( ENABLE_LDCONFIG ON CACHE BOOL "Set library links and caches using ldconfig
|
||||
|
||||
# Install License file
|
||||
install ( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT devel)
|
||||
install ( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR}-asan COMPONENT asan)
|
||||
|
||||
# Make proper version for appending
|
||||
# Default Value is 99999, setting it first
|
||||
@@ -330,6 +345,15 @@ set(CPACK_DEBIAN_PACKAGE_PROVIDES "hsakmt-roct")
|
||||
set(CPACK_RPM_PACKAGE_OBSOLETES "hsakmt-roct")
|
||||
set(CPACK_RPM_PACKAGE_PROVIDES "hsakmt-roct")
|
||||
|
||||
# Debian devel component specific flags
|
||||
set(CPACK_DEBIAN_DEVEL_PACKAGE_NAME "hsakmt-roct-dev")
|
||||
set(CPACK_DEBIAN_DEVEL_PACKAGE_REPLACES "hsakmt-roct")
|
||||
set(CPACK_DEBIAN_DEVEL_PACKAGE_PROVIDES "hsakmt-roct")
|
||||
set(CPACK_RPM_DEVEL_PACKAGE_PROVIDES "hsakmt-roct")
|
||||
|
||||
# Debian package specific variable for ASAN
|
||||
set(CPACK_DEBIAN_ASAN_PACKAGE_NAME "hsakmt-roct-asan" )
|
||||
|
||||
## Process the Rpm install/remove scripts to update the CPACK variables
|
||||
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/RPM/post.in" RPM/post @ONLY )
|
||||
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/RPM/postun.in" RPM/postun @ONLY )
|
||||
@@ -342,9 +366,17 @@ if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX)
|
||||
endif()
|
||||
set(CPACK_RPM_PACKAGE_NAME "hsakmt-roct-devel")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "MIT")
|
||||
|
||||
# RPM package specific variable for ASAN
|
||||
set(CPACK_RPM_ASAN_PACKAGE_NAME "hsakmt-roct-asan" )
|
||||
|
||||
# RPM package devel specific variable
|
||||
set(CPACK_RPM_DEVEL_PACKAGE_NAME "hsakmt-roct-devel")
|
||||
# Since we changed the package name to match RPM specs, take care of older builds that had -dev installed
|
||||
# Also cover the fact that this now replaces the old binary package hsakmt-roct
|
||||
set(CPACK_RPM_PACKAGE_OBSOLETES "hsakmt-roct-dev hsakmt-roct")
|
||||
set(CPACK_RPM_DEVEL_PACKAGE_OBSOLETES "hsakmt-roct-dev hsakmt-roct")
|
||||
|
||||
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
else()
|
||||
@@ -370,17 +402,33 @@ endif()
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libdrm-amdgpu-dev | libdrm-dev, rocm-core")
|
||||
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "libdrm-amdgpu-dev")
|
||||
set(CPACK_DEBIAN_PACKAGE_REPLACES "hsakmt-roct")
|
||||
set(CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS "libdrm-amdgpu-dev | libdrm-dev, rocm-core")
|
||||
set(CPACK_DEBIAN_DEVEL_PACKAGE_RECOMMENDS "libdrm-amdgpu-dev")
|
||||
set(CPACK_DEBIAN_DEVEL_PACKAGE_REPLACES "hsakmt-roct")
|
||||
|
||||
# Debian package specific variable for ASAN
|
||||
set(CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "libdrm-amdgpu-dev | libdrm-dev, rocm-core-asan")
|
||||
set(CPACK_DEBIAN_ASAN_PACKAGE_RECOMMENDS "libdrm-amdgpu-dev")
|
||||
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "rocm-core")
|
||||
set(CPACK_RPM_DEVEL_PACKAGE_REQUIRES "rocm-core")
|
||||
# RPM package specific variable for ASAN
|
||||
set(CPACK_RPM_ASAN_PACKAGE_REQUIRES "rocm-core-asan")
|
||||
|
||||
# NOTE: CentOS/RHEL <8 and SUSE <10 do not have support for rpm recommends,
|
||||
# so HSAKMT_REQUIRES_LIBDRM should be defined when building EL7 to avoid
|
||||
# producing binaries which do not install on CentOS7 or RHEL7
|
||||
if(HSAKMT_REQUIRES_LIBDRM)
|
||||
string ( APPEND CPACK_RPM_PACKAGE_REQUIRES ", libdrm-amdgpu-devel" )
|
||||
string ( APPEND CPACK_RPM_DEVEL_PACKAGE_REQUIRES ", libdrm-amdgpu-devel" )
|
||||
string ( APPEND CPACK_RPM_ASAN_PACKAGE_REQUIRES ", libdrm-amdgpu-devel" )
|
||||
else()
|
||||
string ( APPEND CPACK_RPM_PACKAGE_REQUIRES ", (libdrm-amdgpu-devel or libdrm-devel)" )
|
||||
string ( APPEND CPACK_RPM_DEVEL_PACKAGE_REQUIRES ", (libdrm-amdgpu-devel or libdrm-devel)" )
|
||||
string ( APPEND CPACK_RPM_ASAN_PACKAGE_REQUIRES ", (libdrm-amdgpu-devel or libdrm-devel)" )
|
||||
set(CPACK_RPM_PACKAGE_RECOMMENDS "libdrm-amdgpu-devel" )
|
||||
set(CPACK_RPM_DEVEL_PACKAGE_RECOMMENDS "libdrm-amdgpu-devel" )
|
||||
set(CPACK_RPM_ASAN_PACKAGE_RECOMMENDS "libdrm-amdgpu-devel" )
|
||||
endif()
|
||||
|
||||
# Set the names now using CPACK utility
|
||||
@@ -391,6 +439,14 @@ set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
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" "" CPACK_RPM_DEVEL_PACKAGE_REQUIRES ${CPACK_RPM_DEVEL_PACKAGE_REQUIRES})
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEVEL_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})
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
|
||||
cpack_add_component(asan
|
||||
DISPLAY_NAME "ASAN"
|
||||
DESCRIPTION "ASAN libraries for the LIBHSAKMT")
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário