Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 104 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ add_definitions( -DTARGET_LIBRARY_NAME=\"${CORE_TARGET}\" -DTARGET_LIBRARY_INSTA

## Build Type Settings
set( CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." )
set( VERSIONED_PKGING_ENABLED OFF CACHE BOOL "Enable or Disable Versioned Packaging by Default" )

## Verbose output.
set( CMAKE_VERBOSE_MAKEFILE on )
Expand Down Expand Up @@ -123,6 +124,35 @@ set( SO_VERSION_STRING "${SO_MAJOR}.${SO_MINOR}.${ROCM_LIBPATCH_VERSION}" )
set_property( TARGET ${CORE_TARGET} PROPERTY VERSION "${SO_VERSION_STRING}" )
set_property( TARGET ${CORE_TARGET} PROPERTY SOVERSION "${SO_MAJOR}" )

# Additional Component String for Versioned Packaging
if( VERSIONED_PKGING_ENABLED )
# Meta Package Component Name Strings
set( CORE_ASAN_META_COMPONENT "CORE_ASAN_META" )
set( CORE_RT_META_COMPONENT "CORE_RT_META" )
set( CORE_ST_META_COMPONENT "CORE_ST_META" )
else()
set( CORE_ASAN_META_COMPONENT "" )
set( CORE_RT_META_COMPONENT "" )
set( CORE_ST_META_COMPONENT "" )
endif()

if(ENABLE_ASAN_PACKAGING)
# Only libraries required for ASAN Package
set( CPACK_COMPONENTS_ALL CORE_ASAN ${CORE_ASAN_META_COMPONENT})
set( COMP_TYPE "CORE_ASAN" )
set( PKG_DESCRIPTION "ROCm AddressSanitizer Instrumented Runtime software stack" )
else()
if(BUILD_SHARED_LIBS)
set( CPACK_COMPONENTS_ALL CORE_RUNTIME ${CORE_RT_META_COMPONENT})
set( COMP_TYPE "CORE_RUNTIME" )
set( PKG_DESCRIPTION "ROCm Runtime software stack" )
else()
set( CPACK_COMPONENTS_ALL CORE_STATIC ${CORE_ST_META_COMPONENT})
set( STATIC_COMP_TYPE "CORE_STATIC" )
set( PKG_DESCRIPTION "ROCm Static software stack" )
endif()
endif()

#Add the libpatch version if available to the version file
if( DEFINED VERSION_POINT )
file ( WRITE "${CMAKE_CURRENT_BINARY_DIR}/version" "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_POINT}\n" )
Expand Down Expand Up @@ -170,6 +200,20 @@ else()
COMPONENT ${STATIC_COMP_TYPE} )
endif()

# Install Files for Meta Component
if( VERSIONED_PKGING_ENABLED )
file ( WRITE "${CMAKE_CURRENT_BINARY_DIR}/${CORE_TARGET}_INFO" "This is a Meta Package for ${CORE_TARGET}\n" )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CORE_TARGET}_INFO
DESTINATION .info_${CORE_ASAN_META_COMPONENT}
COMPONENT ${CORE_ASAN_META_COMPONENT} )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CORE_TARGET}_INFO
DESTINATION .info_${CORE_RT_META_COMPONENT}
COMPONENT ${CORE_RT_META_COMPONENT} )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CORE_TARGET}_INFO
DESTINATION .info_${CORE_ST_META_COMPONENT}
COMPONENT ${CORE_ST_META_COMPONENT} )
endif()

## Cmake module config file configurations
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" CACHE INTERNAL "Default module path.")

Expand Down Expand Up @@ -222,18 +266,46 @@ set ( CPACK_PACKAGE_CONTACT "${PKG_MAINTAINER_NM} <${PKG_MAINTAINER_EMAIL}>" )
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PKG_DESCRIPTION}" )
set ( CPACK_RESOURCE_FILE_LICENSE "${LICENSE_FILE}" )
## packaging variables
if ( DEFINED ROCM_LIBPATCH_VERSION )
if( NOT VERSIONED_PKGING_ENABLED )
set( VERSIONED_PKGING_VERSION_STRING "")
else()
if(DEFINED ENV{ROCM_VERSION})
set( VERSIONED_PKGING_VERSION_STRING $ENV{ROCM_VERSION} )
elseif(DEFINED ROCM_VERSION)
set( VERSIONED_PKGING_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
if(DEFINED VERSION_POINT)
set( VERSIONED_PKGING_VERSION_STRING "${VERSIONED_PKGING_VERSION_STRING}.${VERSION_POINT}" )
endif()
else()
message( FATAL_ERROR "Returning Since ROCM_VERSION flags are Not Set, for VERSIONED PACKAGING\
Retry after setting ROCM_VERSION" )
return()
endif()
endif()

if( DEFINED ROCM_LIBPATCH_VERSION )
set ( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${ROCM_LIBPATCH_VERSION}" )
message ( STATUS "Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}" )
endif()

## Debian package specific variables
set ( CPACK_DEB_COMPONENT_INSTALL ON )
set ( CPACK_DEBIAN_CORE_RUNTIME_PACKAGE_NAME "${CORE_TARGET}" )

set ( CPACK_DEBIAN_CORE_RUNTIME_PACKAGE_NAME "${CORE_TARGET}${VERSIONED_PKGING_VERSION_STRING}" )

# ASAN package name
set ( CPACK_DEBIAN_CORE_ASAN_PACKAGE_NAME ${CORE_TARGET}-asan )
set ( CPACK_DEBIAN_CORE_ASAN_PACKAGE_NAME "${CORE_TARGET}-asan${VERSIONED_PKGING_VERSION_STRING}" )

# STATIC package name - For Now, No change for static package Name from default
set ( CPACK_DEBIAN_CORE_STATIC_PACKAGE_NAME ${CORE_TARGET} )
set ( CPACK_DEBIAN_CORE_STATIC_PACKAGE_NAME "${CORE_TARGET}${VERSIONED_PKGING_VERSION_STRING}" )

if( VERSIONED_PKGING_ENABLED )
# Meta Package for Versioned Packaging
set ( CPACK_DEBIAN_${CORE_ASAN_META_COMPONENT}_PACKAGE_NAME "${CORE_TARGET}-asan" )
set ( CPACK_DEBIAN_${CORE_RT_META_COMPONENT}_PACKAGE_NAME "${CORE_TARGET}" )
set ( CPACK_DEBIAN_${CORE_ST_META_COMPONENT}_PACKAGE_NAME "${CORE_TARGET}" )
endif()

message ( STATUS "Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}" )
set ( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" )

Expand All @@ -246,11 +318,21 @@ endif()

## RPM package specific variables
set ( CPACK_RPM_COMPONENT_INSTALL ON )
set ( CPACK_RPM_CORE_RUNTIME_PACKAGE_NAME "${CORE_TARGET}" )

set ( CPACK_RPM_CORE_RUNTIME_PACKAGE_NAME "${CORE_TARGET}${VERSIONED_PKGING_VERSION_STRING}" )

# ASAN package name
set ( CPACK_RPM_CORE_ASAN_PACKAGE_NAME ${CORE_TARGET}-asan )
set ( CPACK_RPM_CORE_ASAN_PACKAGE_NAME "${CORE_TARGET}-asan${VERSIONED_PKGING_VERSION_STRING}" )

# STATIC package name - For Now, No change for static package Name from default
set ( CPACK_RPM_CORE_STATIC_PACKAGE_NAME ${CORE_TARGET} )
set ( CPACK_RPM_CORE_STATIC_PACKAGE_NAME "${CORE_TARGET}${VERSIONED_PKGING_VERSION_STRING}" )

if( VERSIONED_PKGING_ENABLED )
# Meta Package for Versioned Packaging
set ( CPACK_RPM_${CORE_ASAN_META_COMPONENT}_PACKAGE_NAME "${CORE_TARGET}-asan" )
set ( CPACK_RPM_${CORE_RT_META_COMPONENT}_PACKAGE_NAME "${CORE_TARGET}" )
set ( CPACK_RPM_${CORE_ST_META_COMPONENT}_PACKAGE_NAME "${CORE_TARGET}" )
endif()

## 'dist' breaks manual builds on debian systems due to empty Provides
execute_process( COMMAND rpm --eval %{?dist}
Expand All @@ -276,6 +358,13 @@ set ( CPACK_DEBIAN_CORE_ASAN_PACKAGE_DEPENDS ${CORE_TARGET} )
set ( CPACK_DEBIAN_CORE_RUNTIME_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" )
set ( CPACK_DEBIAN_CORE_STATIC_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" )
set ( CPACK_DEBIAN_PACKAGE_DESCRIPTION "${EXTENDED_PACKAGE_DESCRIPTION}" )
if( VERSIONED_PKGING_ENABLED )
set ( CPACK_DEBIAN_${CORE_ASAN_META_COMPONENT}_PACKAGE_DEPENDS
"${CPACK_DEBIAN_CORE_ASAN_PACKAGE_NAME} \(= ${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}\)" )
set ( CPACK_DEBIAN_${CORE_RT_META_COMPONENT}_PACKAGE_DEPENDS "${CPACK_DEBIAN_CORE_RUNTIME_PACKAGE_NAME} \(= ${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}\)" )
set ( CPACK_DEBIAN_${CORE_ST_META_COMPONENT}_PACKAGE_DEPENDS
"${CPACK_DEBIAN_CORE_STATIC_PACKAGE_NAME} \(= ${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}\)" )
endif()

## RPM package specific variables
set ( CPACK_RPM_PACKAGE_REQUIRES ${RPM_DEPENDS_STRING} )
Expand All @@ -286,6 +375,14 @@ set ( CPACK_RPM_CORE_RUNTIME_POST_UNINSTALL_SCRIPT_FILE "${BUILD_DIR}/prerm" )
set ( CPACK_RPM_CORE_STATIC_POST_INSTALL_SCRIPT_FILE "${BUILD_DIR}/postinst" )
set ( CPACK_RPM_CORE_STATIC_POST_UNINSTALL_SCRIPT_FILE "${BUILD_DIR}/prerm" )
set ( CPACK_RPM_PACKAGE_DESCRIPTION "${EXTENDED_PACKAGE_DESCRIPTION}" )
if( VERSIONED_PKGING_ENABLED )
set ( CPACK_RPM_${CORE_ASAN_META_COMPONENT}_PACKAGE_REQUIRES
"${CPACK_RPM_CORE_ASAN_PACKAGE_NAME} \(= ${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}\)" )
set ( CPACK_RPM_${CORE_RT_META_COMPONENT}_PACKAGE_REQUIRES
"${CORE_RPM_CORE_RUNTIME_PACKAGE_NAME} \(= ${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}\)" )
set ( CPACK_RPM_${CORE_ST_META_COMPONENT}_PACKAGE_REQUIRES
"${CORE_RPM_CORE_STATIC_PACKAGE_NAME} \(= ${CPACK_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}\)" )
endif()

if ( DEFINED CPACK_PACKAGING_INSTALL_PREFIX )
set ( CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
Expand Down