Skip to content
Draft
Show file tree
Hide file tree
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
84 changes: 67 additions & 17 deletions amd/comgr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ set (ver_minor ${CMAKE_MATCH_1})

message("Comgr Version: ${ver_major}.${ver_minor}.0")

project(amd_comgr VERSION "${ver_major}.${ver_minor}.0" LANGUAGES C CXX)
set(amd_comgr_NAME "${PROJECT_NAME}")
project(amd-comgr VERSION "${ver_major}.${ver_minor}.0" LANGUAGES C CXX)
set(amd_comgr_NAME "amd_comgr")

# Get git branch and commit hash to add to log for easier debugging.
execute_process(
Expand Down Expand Up @@ -256,20 +256,25 @@ list(APPEND AMD_COMGR_PRIVATE_COMPILE_DEFINITIONS AMD_COMGR_EXPORT)
include(bc2h)
include(opencl_header)
include(DeviceLibs)
include(utils)

# Set Lintian Support Flags
set( BUILD_ENABLE_LINTIAN_OVERRIDES ON CACHE BOOL "Enable/Disable Lintian Overrides" )
set( BUILD_DEBIAN_PKGING_FLAG ON CACHE BOOL "Internal Status Flag to indicate Debian Packaging Build" )

# Add major version to the name on windows, including Win64
if (WIN32)
set_target_properties(amd_comgr PROPERTIES
OUTPUT_NAME "amd_comgr_${amd_comgr_VERSION_MAJOR}")
OUTPUT_NAME "amd_comgr_${amd-comgr_VERSION_MAJOR}")
endif()

set_target_properties(amd_comgr PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED Yes
CXX_EXTENSIONS No)
set_target_properties(amd_comgr PROPERTIES
SOVERSION "${amd_comgr_VERSION_MAJOR}"
VERSION "${amd_comgr_VERSION_MAJOR}.${amd_comgr_VERSION_MINOR}.${amd_comgr_VERSION_PATCH}")
SOVERSION "${amd-comgr_VERSION_MAJOR}"
VERSION "${amd-comgr_VERSION_MAJOR}.${amd-comgr_VERSION_MINOR}.${amd-comgr_VERSION_PATCH}")

if (NOT COMGR_BUILD_SHARED_LIBS)
set_target_properties(amd_comgr PROPERTIES POSITION_INDEPENDENT_CODE ON)
Expand Down Expand Up @@ -337,15 +342,17 @@ configure_file("cmake/${AMD_COMGR_CONFIG_NAME}.in"
"lib/${AMD_COMGR_PACKAGE_PREFIX}/${AMD_COMGR_CONFIG_NAME}"
@ONLY)
write_basic_package_version_file("${AMD_COMGR_VERSION_PATH}"
VERSION "${amd_comgr_VERSION}"
VERSION "${amd-comgr_VERSION}"
COMPATIBILITY SameMajorVersion)

if(ENABLE_ASAN_PACKAGING)
set( COMP_TYPE "asan" )
install(TARGETS amd_comgr
EXPORT amd_comgr_export
COMPONENT asan
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
else()
set( COMP_TYPE "amd-comgr" )
install(TARGETS amd_comgr
EXPORT amd_comgr_export
COMPONENT amd-comgr
Expand Down Expand Up @@ -512,19 +519,27 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
set(CPACK_COMPONENTS_ALL amd-comgr)
set(PKG_DESC_SUMMARY "Library to provide support functions for ROCm code objects.")
endif()
set(CPACK_PACKAGE_NAME comgr)
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PKG_DESC_SUMMARY})
set(CPACK_PACKAGE_DESCRIPTION "This package contains the AMD ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}.")
set(CPACK_PACKAGE_VERSION_MAJOR "${amd_comgr_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${amd_comgr_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${amd_comgr_VERSION_PATCH}")
set(CPACK_PACKAGE_CONTACT "ROCm Compiler Support <[email protected]>")
set(CPACK_PACKAGE_VERSION_MAJOR "${amd-comgr_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${amd-comgr_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${amd-comgr_VERSION_PATCH}")
set(PKG_MAINTAINER_NM "ROCm Compiler Support")
set(PKG_MAINTAINER_EMAIL "[email protected]")
set(CPACK_PACKAGE_CONTACT "${PKG_MAINTAINER_NM} <${PKG_MAINTAINER_EMAIL}>")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")

# ASAN Specific variables
set(CPACK_DEBIAN_ASAN_PACKAGE_NAME comgr-asan)
set(CPACK_RPM_ASAN_PACKAGE_NAME comgr-asan)
set(CPACK_DEBIAN_ASAN_PACKAGE_NAME ${PROJECT_NAME}-asan)
set(CPACK_DEBIAN_ASAN_PACKAGE_PROVIDES comgr-asan)
set(CPACK_DEBIAN_ASAN_PACKAGE_CONFLICTS comgr-asan)
set(CPACK_DEBIAN_ASAN_PACKAGE_REPLACES comgr-asan)
set(CPACK_RPM_ASAN_PACKAGE_NAME ${PROJECT_NAME}-asan)
set(CPACK_RPM_ASAN_PACKAGE_PROVIDES comgr-asan)
set(CPACK_RPM_ASAN_PACKAGE_CONFLICTS comgr-asan)
set(CPACK_RPM_ASAN_PACKAGE_OBSOLETES comgr-asan)

# Make proper version for appending
set(ROCM_VERSION_FOR_PACKAGE "")
Expand All @@ -543,9 +558,15 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
# Debian package specific variables
set(CPACK_DEB_COMPONENT_INSTALL ON)
if(COMGR_BUILD_SHARED_LIBS)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_NAME comgr)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_PROVIDES comgr)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_CONFLICTS comgr)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_REPLACES comgr)
else()
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_NAME comgr-static-dev)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_NAME ${PROJECT_NAME}-static-dev)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_PROVIDES comgr-static-dev)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_CONFLICTS comgr-static-dev)
set(CPACK_DEBIAN_AMD-COMGR_PACKAGE_REPLACES comgr-static-dev)
endif()
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/ROCm/llvm-project/tree/amd-staging/amd/comgr")
set(DEBIAN_DEPENDENCIES "libzstd1, zlib1g, libc6, libstdc++6, libgcc-s1 | libgcc1")
Expand All @@ -565,9 +586,15 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
# RPM package specific variables
set(CPACK_RPM_COMPONENT_INSTALL ON)
if(COMGR_BUILD_SHARED_LIBS)
set(CPACK_RPM_AMD-COMGR_PACKAGE_NAME comgr)
set(CPACK_RPM_AMD-COMGR_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_RPM_AMD-COMGR_PACKAGE_PROVIDES comgr)
set(CPACK_RPM_AMD-COMGR_PACKAGE_CONFLICTS comgr)
set(CPACK_RPM_AMD-COMGR_PACKAGE_REPLACES comgr)
else()
set(CPACK_RPM_AMD-COMGR_PACKAGE_NAME comgr-static-devel)
set(CPACK_RPM_AMD-COMGR_PACKAGE_NAME ${PROJECT_NAME}-static-devel)
set(CPACK_RPM_AMD-COMGR_PACKAGE_PROVIDES comgr-static-devel)
set(CPACK_RPM_AMD-COMGR_PACKAGE_CONFLICTS comgr-static-devel)
set(CPACK_RPM_AMD-COMGR_PACKAGE_REPLACES comgr-static-devel)
endif()

execute_process(COMMAND rpm --eval %{?dist}
Expand Down Expand Up @@ -616,5 +643,28 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
string(REGEX REPLACE ",? ?rocm-core-asan" "" CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS})
endif()

# Configure Lintian Specific Package Data
configure_pkg( ${CPACK_PACKAGE_NAME} ${COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )

# Custom installation for Debian Lintian File
if( BUILD_ENABLE_LINTIAN_OVERRIDES STREQUAL "ON" AND BUILD_DEBIAN_PKGING_FLAG STREQUAL "ON")
set( OVERRIDE_FILE "${CMAKE_BINARY_DIR}/DEBIAN/${DEB_OVERRIDES_INSTALL_FILENM}" )
set( OVERRIDE_TEMP_INSTALL_LOC "/_CPack_Packages/Linux/DEB/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Linux/${COMP_TYPE}" )
if(BUILD_SHARED_LIBS)
set(CPACK_INSTALL_COMMANDS
"${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
"${CMAKE_COMMAND} -E copy ${OVERRIDE_FILE} ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
)
else()
set( OVERRIDE_FILE_STATIC "${DEB_OVERRIDES_INSTALL_FILENM}-static-dev" )
set( OVERRIDE_FILE_STATIC_DEST
"${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}${OVERRIDE_FILE_STATIC}" )
set(CPACK_INSTALL_COMMANDS
"${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
"${CMAKE_COMMAND} -E copy ${OVERRIDE_FILE} ${OVERRIDE_FILE_STATIC_DEST}"
)
endif()
endif()

include(CPack)
endif()
5 changes: 5 additions & 0 deletions amd/comgr/DEBIAN/changelog.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@DEB_PACKAGE_NAME@ (@DEB_PACKAGE_VERSION@) stable; urgency=low

* ROCm Runtime software stack Base Package.
-- @DEB_MAINTAINER_NAME@ <@DEB_MAINTAINER_EMAIL@> @DEB_TIMESTAMP@

7 changes: 7 additions & 0 deletions amd/comgr/DEBIAN/copyright.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: @DEB_PACKAGE_NAME@
Upstream-Contact: @DEB_MAINTAINER_NAME@ <@DEB_MAINTAINER_EMAIL@>
Source: https://github.com/ROCm/llvm-project
Files: *
License: @DEB_LICENSE@
Copyright: @DEB_COPYRIGHT_YEAR@ Advanced Micro Devices, Inc. All rights Reserved.
3 changes: 3 additions & 0 deletions amd/comgr/DEBIAN/overrides.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@DEB_OVERRIDES_INSTALL_FILENM@: no-copyright-file
@DEB_OVERRIDES_INSTALL_FILENM@: debian-changelog-file-missing
@DEB_OVERRIDES_INSTALL_FILENM@: dir-or-file-in-opt
102 changes: 102 additions & 0 deletions amd/comgr/cmake/utils.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
## Configure Lintian Specific install Files for Debian Package
function( configure_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T MAINTAINER_NM_T MAINTAINER_EMAIL_T)
# Check If Debian Platform
find_file (DEBIAN debian_version debconf.conf PATHS /etc)
if(DEBIAN)
set( BUILD_DEBIAN_PKGING_FLAG ON CACHE BOOL "Internal Status Flag to indicate Debian Packaging Build" FORCE )
set_debian_pkg_cmake_flags( ${PACKAGE_NAME_T} ${PACKAGE_VERSION_T}
${MAINTAINER_NM_T} ${MAINTAINER_EMAIL_T} )

# Configure the copyright file
configure_file(
"${CMAKE_SOURCE_DIR}/DEBIAN/copyright.in"
"${CMAKE_BINARY_DIR}/DEBIAN/copyright"
@ONLY
)

# Install copyright file
install ( FILES "${CMAKE_BINARY_DIR}/DEBIAN/copyright"
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
COMPONENT ${COMPONENT_NAME_T} )

# Configure the changelog file
configure_file(
"${CMAKE_SOURCE_DIR}/DEBIAN/changelog.in"
"${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian"
@ONLY
)

if( BUILD_ENABLE_LINTIAN_OVERRIDES )
if(ENABLE_ASAN_PACKAGING)
string( FIND ${DEB_OVERRIDES_INSTALL_FILENM} "asan" OUT_VAR2)
if(OUT_VAR2 EQUAL -1)
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_OVERRIDES_INSTALL_FILENM}-asan" )
endif()
endif()
set( DEB_OVERRIDES_INSTALL_FILENM
"${DEB_OVERRIDES_INSTALL_FILENM}" CACHE STRING "Debian Package Lintian Override File Name" FORCE)
# Configure the changelog file
configure_file(
"${CMAKE_SOURCE_DIR}/DEBIAN/overrides.in"
"${CMAKE_BINARY_DIR}/DEBIAN/${DEB_OVERRIDES_INSTALL_FILENM}"
FILE_PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
@ONLY
)
endif()

# Install Change Log
find_program ( DEB_GZIP_EXEC gzip )
if(EXISTS "${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian" )
execute_process(
COMMAND ${DEB_GZIP_EXEC} -f -n -9 "${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian"
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/DEBIAN"
RESULT_VARIABLE result
OUTPUT_VARIABLE output
ERROR_VARIABLE error
)
if(NOT ${result} EQUAL 0)
message(FATAL_ERROR "Failed to compress: ${error}")
endif()
install ( FILES "${CMAKE_BINARY_DIR}/DEBIAN/${DEB_CHANGELOG_INSTALL_FILENM}"
DESTINATION ${CMAKE_INSTALL_DOCDIR}
COMPONENT ${COMPONENT_NAME_T})
endif()

endif()
endfunction()

# Set variables for changelog and copyright
# For Debian specific Packages
function( set_debian_pkg_cmake_flags DEB_PACKAGE_NAME_T DEB_PACKAGE_VERSION_T DEB_MAINTAINER_NM_T DEB_MAINTAINER_EMAIL_T )
# Setting configure flags
set( DEB_PACKAGE_NAME "${DEB_PACKAGE_NAME_T}" CACHE STRING "Debian Package Name" )
set( DEB_PACKAGE_VERSION "${DEB_PACKAGE_VERSION_T}" CACHE STRING "Debian Package Version String" )
set( DEB_MAINTAINER_NAME "${DEB_MAINTAINER_NM_T}" CACHE STRING "Debian Package Maintainer Name" )
set( DEB_MAINTAINER_EMAIL "${DEB_MAINTAINER_EMAIL_T}" CACHE STRING "Debian Package Maintainer Email" )
set( DEB_COPYRIGHT_YEAR "2025" CACHE STRING "Debian Package Copyright Year" )
set( DEB_LICENSE "Apache and NCSA" CACHE STRING "Debian Package License Type" )
set( DEB_CHANGELOG_INSTALL_FILENM "changelog.Debian.gz" CACHE STRING "Debian Package ChangeLog File Name" )

if( BUILD_ENABLE_LINTIAN_OVERRIDES )
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_PACKAGE_NAME}" CACHE STRING "Debian Package Lintian Override File Name" )
set( DEB_OVERRIDES_INSTALL_PATH "/usr/share/lintian/overrides/" CACHE STRING "Deb Pkg Lintian Override Install Loc" )
endif()

# Get TimeStamp
find_program( DEB_DATE_TIMESTAMP_EXEC date )
set ( DEB_TIMESTAMP_FORMAT_OPTION "-R" )
execute_process (
COMMAND ${DEB_DATE_TIMESTAMP_EXEC} ${DEB_TIMESTAMP_FORMAT_OPTION}
OUTPUT_VARIABLE TIMESTAMP_T
)
set( DEB_TIMESTAMP "${TIMESTAMP_T}" CACHE STRING "Current Time Stamp for Copyright/Changelog" )

message(STATUS "DEB_PACKAGE_NAME : ${DEB_PACKAGE_NAME}" )
message(STATUS "DEB_PACKAGE_VERSION : ${DEB_PACKAGE_VERSION}" )
message(STATUS "DEB_MAINTAINER_NAME : ${DEB_MAINTAINER_NAME}" )
message(STATUS "DEB_MAINTAINER_EMAIL : ${DEB_MAINTAINER_EMAIL}" )
message(STATUS "DEB_COPYRIGHT_YEAR : ${DEB_COPYRIGHT_YEAR}" )
message(STATUS "DEB_LICENSE : ${DEB_LICENSE}" )
message(STATUS "DEB_TIMESTAMP : ${DEB_TIMESTAMP}" )
message(STATUS "DEB_CHANGELOG_INSTALL_FILENM : ${DEB_CHANGELOG_INSTALL_FILENM}" )
endfunction()
4 changes: 2 additions & 2 deletions amd/comgr/include/amd_comgr.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@
#endif
#endif

#define AMD_COMGR_INTERFACE_VERSION_MAJOR @amd_comgr_VERSION_MAJOR@
#define AMD_COMGR_INTERFACE_VERSION_MINOR @amd_comgr_VERSION_MINOR@
#define AMD_COMGR_INTERFACE_VERSION_MAJOR @amd-comgr_VERSION_MAJOR@
#define AMD_COMGR_INTERFACE_VERSION_MINOR @amd-comgr_VERSION_MINOR@

#ifdef __cplusplus
extern "C" {
Expand Down