diff --git a/projects/rocr-runtime/CMakeLists.txt b/projects/rocr-runtime/CMakeLists.txt index c447d6de98..95b90a045d 100644 --- a/projects/rocr-runtime/CMakeLists.txt +++ b/projects/rocr-runtime/CMakeLists.txt @@ -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")