2022-06-28 16:32:07 -05:00
|
|
|
# configure packaging
|
2022-03-27 22:52:36 -05:00
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
function(rocprofiler_systems_parse_release)
|
2022-04-21 21:36:07 -05:00
|
|
|
if(EXISTS /etc/lsb-release AND NOT IS_DIRECTORY /etc/lsb-release)
|
|
|
|
|
file(READ /etc/lsb-release _LSB_RELEASE)
|
|
|
|
|
if(_LSB_RELEASE)
|
2025-06-22 10:44:33 -04:00
|
|
|
string(
|
|
|
|
|
REGEX REPLACE
|
|
|
|
|
"DISTRIB_ID=(.*)\nDISTRIB_RELEASE=(.*)\nDISTRIB_CODENAME=.*"
|
|
|
|
|
"\\1-\\2"
|
|
|
|
|
_SYSTEM_NAME
|
|
|
|
|
"${_LSB_RELEASE}"
|
|
|
|
|
)
|
2022-04-21 21:36:07 -05:00
|
|
|
endif()
|
|
|
|
|
elseif(EXISTS /etc/os-release AND NOT IS_DIRECTORY /etc/os-release)
|
|
|
|
|
file(READ /etc/os-release _OS_RELEASE)
|
|
|
|
|
if(_OS_RELEASE)
|
|
|
|
|
string(REPLACE "\"" "" _OS_RELEASE "${_OS_RELEASE}")
|
|
|
|
|
string(REPLACE "-" " " _OS_RELEASE "${_OS_RELEASE}")
|
2025-06-22 10:44:33 -04:00
|
|
|
string(
|
|
|
|
|
REGEX REPLACE
|
|
|
|
|
"NAME=.*\nVERSION=([0-9\.]+).*\nID=([a-z]+).*"
|
|
|
|
|
"\\2-\\1"
|
|
|
|
|
_SYSTEM_NAME
|
|
|
|
|
"${_OS_RELEASE}"
|
|
|
|
|
)
|
2022-04-21 21:36:07 -05:00
|
|
|
endif()
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
2022-04-21 21:36:07 -05:00
|
|
|
string(TOLOWER "${_SYSTEM_NAME}" _SYSTEM_NAME)
|
|
|
|
|
if(NOT _SYSTEM_NAME)
|
|
|
|
|
set(_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}")
|
|
|
|
|
endif()
|
2025-06-22 10:44:33 -04:00
|
|
|
set(_SYSTEM_NAME "${_SYSTEM_NAME}" PARENT_SCOPE)
|
2022-04-21 21:36:07 -05:00
|
|
|
endfunction()
|
|
|
|
|
|
|
|
|
|
# parse either /etc/lsb-release or /etc/os-release
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_parse_release()
|
2022-03-27 22:52:36 -05:00
|
|
|
|
|
|
|
|
if(NOT _SYSTEM_NAME)
|
|
|
|
|
set(_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Add packaging directives
|
2021-08-06 13:29:09 -05:00
|
|
|
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
|
|
|
|
|
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.")
|
2021-09-20 11:12:06 -05:00
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
2025-06-22 10:44:33 -04:00
|
|
|
"Runtime instrumentation and binary rewriting for Perfetto via Dyninst"
|
|
|
|
|
)
|
2021-08-06 13:29:09 -05:00
|
|
|
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
|
|
|
|
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
|
|
|
|
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
2024-05-01 22:15:20 -04:00
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
set(CPACK_PACKAGE_CONTACT "https://github.com/ROCm/rocprofiler-systems")
|
2025-09-10 12:06:14 -04:00
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.md")
|
2022-04-04 15:27:38 -05:00
|
|
|
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
|
2024-11-25 16:02:53 -05:00
|
|
|
|
|
|
|
|
# For handling the project rebranding from "omnitrace" to "rocprofiler-systems"
|
|
|
|
|
set(OMNITRACE_PACKAGE_NAME "omnitrace")
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_CPACK_SYSTEM_NAME
|
2022-03-27 22:52:36 -05:00
|
|
|
"${_SYSTEM_NAME}"
|
2025-06-22 10:44:33 -04:00
|
|
|
CACHE STRING
|
|
|
|
|
"System name, e.g. Linux or Ubuntu-20.04"
|
|
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_CPACK_PACKAGE_SUFFIX "")
|
2022-03-27 22:52:36 -05:00
|
|
|
|
2024-12-13 18:48:39 -05:00
|
|
|
if(ROCPROFSYS_USE_ROCM)
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_CPACK_PACKAGE_SUFFIX
|
2025-06-22 10:44:33 -04:00
|
|
|
"${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}-ROCm-${ROCmVersion_NUMERIC_VERSION}"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
2021-08-06 13:29:09 -05:00
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_USE_PAPI)
|
|
|
|
|
set(ROCPROFSYS_CPACK_PACKAGE_SUFFIX "${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}-PAPI")
|
2021-09-20 11:12:06 -05:00
|
|
|
endif()
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_USE_OMPT)
|
|
|
|
|
set(ROCPROFSYS_CPACK_PACKAGE_SUFFIX "${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}-OMPT")
|
2021-09-20 11:12:06 -05:00
|
|
|
endif()
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_USE_MPI)
|
2022-03-27 22:52:36 -05:00
|
|
|
set(VALID_MPI_IMPLS "mpich" "openmpi")
|
2022-07-17 21:52:09 -05:00
|
|
|
if("${MPI_C_COMPILER_INCLUDE_DIRS};${MPI_C_HEADER_DIR}" MATCHES "openmpi")
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_MPI_IMPL "openmpi")
|
2022-07-17 21:52:09 -05:00
|
|
|
elseif("${MPI_C_COMPILER_INCLUDE_DIRS};${MPI_C_HEADER_DIR}" MATCHES "mpich")
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_MPI_IMPL "mpich")
|
2022-03-27 22:52:36 -05:00
|
|
|
else()
|
|
|
|
|
message(
|
|
|
|
|
WARNING
|
2025-06-22 10:44:33 -04:00
|
|
|
"MPI implementation could not be determined. Please set ROCPROFSYS_MPI_IMPL to one of the following for CPack: ${VALID_MPI_IMPLS}"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_MPI_IMPL AND NOT "${ROCPROFSYS_MPI_IMPL}" IN_LIST VALID_MPI_IMPLS)
|
2022-03-27 22:52:36 -05:00
|
|
|
message(
|
|
|
|
|
SEND_ERROR
|
2025-06-22 10:44:33 -04:00
|
|
|
"Invalid ROCPROFSYS_MPI_IMPL (${ROCPROFSYS_MPI_IMPL}). Should be one of: ${VALID_MPI_IMPLS}"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
else()
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_add_feature(ROCPROFSYS_MPI_IMPL
|
2025-06-22 10:44:33 -04:00
|
|
|
"MPI implementation for CPack DEBIAN depends"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if("${ROCPROFSYS_MPI_IMPL}" STREQUAL "openmpi")
|
|
|
|
|
set(ROCPROFSYS_MPI_IMPL_UPPER "OpenMPI")
|
|
|
|
|
elseif("${ROCPROFSYS_MPI_IMPL}" STREQUAL "mpich")
|
|
|
|
|
set(ROCPROFSYS_MPI_IMPL_UPPER "MPICH")
|
2022-07-17 21:52:09 -05:00
|
|
|
else()
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_MPI_IMPL_UPPER "MPI")
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_CPACK_PACKAGE_SUFFIX
|
2025-06-22 10:44:33 -04:00
|
|
|
"${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}-${ROCPROFSYS_MPI_IMPL_UPPER}"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_USE_PYTHON)
|
|
|
|
|
set(_ROCPROFSYS_PYTHON_NAME "Python3")
|
|
|
|
|
foreach(_VER ${ROCPROFSYS_PYTHON_VERSIONS})
|
2022-04-21 21:36:07 -05:00
|
|
|
if("${_VER}" VERSION_LESS 3.0.0)
|
2024-10-15 11:20:40 -04:00
|
|
|
set(_ROCPROFSYS_PYTHON_NAME "Python")
|
2022-04-21 21:36:07 -05:00
|
|
|
endif()
|
|
|
|
|
endforeach()
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_CPACK_PACKAGE_SUFFIX "${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}-Python3")
|
2022-04-05 00:24:34 -05:00
|
|
|
endif()
|
|
|
|
|
|
2022-03-27 22:52:36 -05:00
|
|
|
set(CPACK_PACKAGE_FILE_NAME
|
2024-10-15 11:20:40 -04:00
|
|
|
"${CPACK_PACKAGE_NAME}-${ROCPROFSYS_VERSION}-${ROCPROFSYS_CPACK_SYSTEM_NAME}${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}"
|
2025-06-22 10:44:33 -04:00
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
if(DEFINED ENV{CPACK_PACKAGE_FILE_NAME})
|
|
|
|
|
set(CPACK_PACKAGE_FILE_NAME $ENV{CPACK_PACKAGE_FILE_NAME})
|
|
|
|
|
endif()
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
set(ROCPROFSYS_PACKAGE_FILE_NAME
|
|
|
|
|
${CPACK_PACKAGE_NAME}-${ROCPROFSYS_VERSION}-${ROCPROFSYS_CPACK_SYSTEM_NAME}${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}
|
2025-06-22 10:44:33 -04:00
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_add_feature(ROCPROFSYS_PACKAGE_FILE_NAME "CPack filename")
|
2022-03-27 22:52:36 -05:00
|
|
|
|
2025-04-09 17:15:24 -04:00
|
|
|
if(ROCM_DEP_ROCMCORE OR ROCPROFILER_DEP_ROCMCORE)
|
|
|
|
|
set(_DEBIAN_PACKAGE_DEPENDS "rocm-core")
|
|
|
|
|
set(_RPM_PACKAGE_REQUIRES "rocm-core")
|
|
|
|
|
else()
|
|
|
|
|
set(_DEBIAN_PACKAGE_DEPENDS "")
|
|
|
|
|
set(_RPM_PACKAGE_REQUIRES "")
|
|
|
|
|
endif()
|
|
|
|
|
|
2022-03-27 22:52:36 -05:00
|
|
|
# -------------------------------------------------------------------------------------- #
|
|
|
|
|
#
|
2021-08-06 13:29:09 -05:00
|
|
|
# Debian package specific variables
|
2022-03-27 22:52:36 -05:00
|
|
|
#
|
|
|
|
|
# -------------------------------------------------------------------------------------- #
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/ROCm/rocprofiler-systems")
|
2022-04-04 15:27:38 -05:00
|
|
|
set(CPACK_DEBIAN_PACKAGE_RELEASE
|
2025-06-22 10:44:33 -04:00
|
|
|
"${ROCPROFSYS_CPACK_SYSTEM_NAME}${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}"
|
|
|
|
|
)
|
|
|
|
|
string(
|
|
|
|
|
REGEX REPLACE
|
|
|
|
|
"([a-zA-Z])-([0-9])"
|
|
|
|
|
"\\1\\2"
|
|
|
|
|
CPACK_DEBIAN_PACKAGE_RELEASE
|
|
|
|
|
"${CPACK_DEBIAN_PACKAGE_RELEASE}"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
string(REPLACE "-" "~" CPACK_DEBIAN_PACKAGE_RELEASE "${CPACK_DEBIAN_PACKAGE_RELEASE}")
|
2021-08-06 13:29:09 -05:00
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_USE_PAPI AND NOT ROCPROFSYS_BUILD_PAPI)
|
2022-03-27 22:52:36 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS libpapi-dev libpfm4)
|
|
|
|
|
endif()
|
2024-10-15 11:20:40 -04:00
|
|
|
if(NOT ROCPROFSYS_BUILD_DYNINST)
|
2025-06-06 22:52:23 -04:00
|
|
|
if(NOT ROCPROFSYS_BUILD_BOOST)
|
2025-06-22 10:44:33 -04:00
|
|
|
foreach(
|
|
|
|
|
_BOOST_COMPONENT
|
|
|
|
|
atomic
|
|
|
|
|
system
|
|
|
|
|
thread
|
|
|
|
|
date-time
|
|
|
|
|
filesystem
|
|
|
|
|
timer
|
|
|
|
|
)
|
|
|
|
|
list(
|
2025-11-10 19:08:44 +01:00
|
|
|
APPEND _DEBIAN_PACKAGE_DEPENDS
|
2025-06-22 10:44:33 -04:00
|
|
|
"libboost-${_BOOST_COMPONENT}-dev (>= 1.67.0)"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
endforeach()
|
|
|
|
|
endif()
|
2025-06-06 22:52:23 -04:00
|
|
|
if(NOT ROCPROFSYS_BUILD_TBB)
|
2022-03-27 22:52:36 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "libtbb-dev (>= 2018.6)")
|
|
|
|
|
endif()
|
2025-06-06 22:52:23 -04:00
|
|
|
if(NOT ROCPROFSYS_BUILD_LIBIBERTY)
|
2022-03-27 22:52:36 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "libiberty-dev (>= 20170913)")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
if(ROCmVersion_FOUND)
|
2025-03-25 17:31:27 -04:00
|
|
|
set(_AMD_SMI_SUFFIX
|
2025-06-22 10:44:33 -04:00
|
|
|
" (>= ${ROCmVersion_MAJOR_VERSION}.0.0.${ROCmVersion_NUMERIC_VERSION})"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
endif()
|
2024-12-13 18:48:39 -05:00
|
|
|
if(ROCPROFSYS_USE_ROCM)
|
2025-03-25 17:31:27 -04:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "amd-smi-lib${_AMD_SMI_SUFFIX}")
|
2024-12-13 18:48:39 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "rocprofiler-sdk (>= ${rocprofiler-sdk_VERSION})")
|
2022-07-25 12:16:11 -05:00
|
|
|
endif()
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_USE_MPI)
|
|
|
|
|
if("${ROCPROFSYS_MPI_IMPL}" STREQUAL "openmpi")
|
2022-03-27 22:52:36 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "libopenmpi-dev")
|
2024-10-15 11:20:40 -04:00
|
|
|
elseif("${ROCPROFSYS_MPI_IMPL}" STREQUAL "mpich")
|
2022-03-27 22:52:36 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "libmpich-dev")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
2025-01-10 10:38:05 -05:00
|
|
|
if(ROCPROFSYS_BUILD_TESTING)
|
|
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "rocdecode-test")
|
2025-02-21 10:25:01 -05:00
|
|
|
list(APPEND _DEBIAN_PACKAGE_DEPENDS "rocjpeg-test")
|
2025-01-10 10:38:05 -05:00
|
|
|
endif()
|
2022-03-27 22:52:36 -05:00
|
|
|
string(REPLACE ";" ", " _DEBIAN_PACKAGE_DEPENDS "${_DEBIAN_PACKAGE_DEPENDS}")
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS
|
|
|
|
|
"${_DEBIAN_PACKAGE_DEPENDS}"
|
2025-06-22 10:44:33 -04:00
|
|
|
CACHE STRING
|
|
|
|
|
"Debian package dependencies"
|
|
|
|
|
FORCE
|
|
|
|
|
)
|
2024-06-07 11:34:35 -04:00
|
|
|
|
2022-03-27 22:52:36 -05:00
|
|
|
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
2024-06-07 11:34:35 -04:00
|
|
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
2022-03-27 22:52:36 -05:00
|
|
|
|
2024-11-25 16:02:53 -05:00
|
|
|
# Handle the project rebranding from "omnitrace" to "rocprofiler-systems"
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_PROVIDES ${OMNITRACE_PACKAGE_NAME})
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_REPLACES ${OMNITRACE_PACKAGE_NAME})
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_BREAKS ${OMNITRACE_PACKAGE_NAME})
|
|
|
|
|
|
2022-03-27 22:52:36 -05:00
|
|
|
# -------------------------------------------------------------------------------------- #
|
|
|
|
|
#
|
2021-08-06 13:29:09 -05:00
|
|
|
# RPM package specific variables
|
2022-03-27 22:52:36 -05:00
|
|
|
#
|
|
|
|
|
# -------------------------------------------------------------------------------------- #
|
|
|
|
|
|
2021-08-06 13:29:09 -05:00
|
|
|
if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX)
|
|
|
|
|
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX}")
|
|
|
|
|
endif()
|
|
|
|
|
|
2022-04-04 15:27:38 -05:00
|
|
|
set(CPACK_RPM_PACKAGE_RELEASE
|
2025-06-22 10:44:33 -04:00
|
|
|
"${ROCPROFSYS_CPACK_SYSTEM_NAME}${ROCPROFSYS_CPACK_PACKAGE_SUFFIX}"
|
|
|
|
|
)
|
|
|
|
|
string(
|
|
|
|
|
REGEX REPLACE
|
|
|
|
|
"([a-zA-Z])-([0-9])"
|
|
|
|
|
"\\1\\2"
|
|
|
|
|
CPACK_RPM_PACKAGE_RELEASE
|
|
|
|
|
"${CPACK_RPM_PACKAGE_RELEASE}"
|
|
|
|
|
)
|
2022-03-27 22:52:36 -05:00
|
|
|
string(REPLACE "-" "~" CPACK_RPM_PACKAGE_RELEASE "${CPACK_RPM_PACKAGE_RELEASE}")
|
2021-08-06 13:29:09 -05:00
|
|
|
|
2024-11-25 16:02:53 -05:00
|
|
|
# Handle the project rebranding from "omnitrace" to "rocprofiler-systems"
|
2025-04-14 11:34:53 -04:00
|
|
|
set(CPACK_RPM_PACKAGE_OBSOLETES "${OMNITRACE_PACKAGE_NAME} <= 1.13.0")
|
2024-11-25 16:02:53 -05:00
|
|
|
set(CPACK_RPM_PACKAGE_CONFLICTS ${OMNITRACE_PACKAGE_NAME})
|
|
|
|
|
set(_RPM_PACKAGE_PROVIDES ${OMNITRACE_PACKAGE_NAME})
|
2024-06-07 11:34:35 -04:00
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
if(ROCPROFSYS_BUILD_LIBUNWIND)
|
2024-06-07 11:34:35 -04:00
|
|
|
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind.so.99()(64bit)")
|
|
|
|
|
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-x86_64.so.99()(64bit)")
|
|
|
|
|
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-setjmp.so.0()(64bit)")
|
|
|
|
|
list(APPEND _RPM_PACKAGE_PROVIDES "libunwind-ptrace.so.0()(64bit)")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
string(REPLACE ";" ", " CPACK_RPM_PACKAGE_PROVIDES "${_RPM_PACKAGE_PROVIDES}")
|
|
|
|
|
set(CPACK_RPM_PACKAGE_PROVIDES
|
|
|
|
|
"${CPACK_RPM_PACKAGE_PROVIDES}"
|
2025-06-22 10:44:33 -04:00
|
|
|
CACHE STRING
|
|
|
|
|
"RPM package provides"
|
|
|
|
|
FORCE
|
|
|
|
|
)
|
2024-06-07 11:34:35 -04:00
|
|
|
|
2025-04-09 17:15:24 -04:00
|
|
|
if(ROCPROFSYS_USE_MPI)
|
|
|
|
|
if("${ROCPROFSYS_MPI_IMPL}" STREQUAL "openmpi")
|
|
|
|
|
list(APPEND _RPM_PACKAGE_REQUIRES "libopenmpi-devel")
|
|
|
|
|
elseif("${ROCPROFSYS_MPI_IMPL}" STREQUAL "mpich")
|
|
|
|
|
list(APPEND _RPM_PACKAGE_REQUIRES "libmpich-devel")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(ROCPROFSYS_USE_ROCM)
|
|
|
|
|
if(ROCPROFSYS_BUILD_TESTING)
|
|
|
|
|
list(APPEND _RPM_PACKAGE_REQUIRES "rocdecode-test")
|
|
|
|
|
list(APPEND _RPM_PACKAGE_REQUIRES "rocjpeg-test")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
string(REPLACE ";" ", " _RPM_PACKAGE_REQUIRES "${_RPM_PACKAGE_REQUIRES}")
|
|
|
|
|
set(CPACK_RPM_PACKAGE_REQUIRES
|
|
|
|
|
${_RPM_PACKAGE_REQUIRES}
|
2025-06-22 10:44:33 -04:00
|
|
|
CACHE STRING
|
|
|
|
|
"RPM package requires"
|
|
|
|
|
FORCE
|
|
|
|
|
)
|
2025-04-16 18:21:09 -07:00
|
|
|
set(CPACK_RPM_SPEC_MORE_DEFINE "%undefine __brp_mangle_shebangs")
|
2024-09-05 15:47:16 -04:00
|
|
|
set(CPACK_RPM_PACKAGE_LICENSE "MIT")
|
2022-03-27 22:52:36 -05:00
|
|
|
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
2024-05-01 22:15:20 -04:00
|
|
|
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
|
2025-04-09 17:15:24 -04:00
|
|
|
set(CPACK_RPM_PACKAGE_AUTOPROV ON)
|
2025-05-01 19:46:24 -04:00
|
|
|
set(CPACK_RPM_PACKAGE_AUTOREQ ON)
|
2021-08-06 13:29:09 -05:00
|
|
|
|
2022-03-27 22:52:36 -05:00
|
|
|
# -------------------------------------------------------------------------------------- #
|
|
|
|
|
#
|
2024-05-01 22:15:20 -04:00
|
|
|
# Prepare final CPACK parameters
|
2022-03-27 22:52:36 -05:00
|
|
|
#
|
|
|
|
|
# -------------------------------------------------------------------------------------- #
|
|
|
|
|
|
2021-09-20 11:12:06 -05:00
|
|
|
set(CPACK_PACKAGE_VERSION
|
|
|
|
|
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}"
|
2025-06-22 10:44:33 -04:00
|
|
|
)
|
2021-08-06 13:29:09 -05:00
|
|
|
|
2024-05-01 22:15:20 -04:00
|
|
|
if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
|
|
|
|
|
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
|
|
|
|
|
set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE})
|
|
|
|
|
endif()
|
|
|
|
|
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_add_feature(CPACK_PACKAGE_NAME "Package name")
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_PACKAGE_VERSION "Package version")
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_PACKAGING_INSTALL_PREFIX
|
2025-06-22 10:44:33 -04:00
|
|
|
"Package installation prefix"
|
|
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_DEBIAN_FILE_NAME "Debian file name")
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_DEBIAN_PACKAGE_RELEASE
|
2025-06-22 10:44:33 -04:00
|
|
|
"Debian package release version"
|
|
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_add_feature(CPACK_DEBIAN_PACKAGE_DEPENDS
|
2025-06-22 10:44:33 -04:00
|
|
|
"Debian package dependencies"
|
|
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_add_feature(CPACK_DEBIAN_PACKAGE_SHLIBDEPS
|
2025-06-22 10:44:33 -04:00
|
|
|
"Debian package shared library dependencies"
|
|
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_RPM_FILE_NAME "RPM file name")
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_RPM_PACKAGE_RELEASE "RPM package release version")
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_RPM_PACKAGE_AUTOREQPROV
|
2025-06-22 10:44:33 -04:00
|
|
|
"RPM package auto generate requires and provides"
|
|
|
|
|
)
|
2024-10-15 11:20:40 -04:00
|
|
|
rocprofiler_systems_add_feature(CPACK_RPM_PACKAGE_REQUIRES "RPM package requires")
|
|
|
|
|
rocprofiler_systems_add_feature(CPACK_RPM_PACKAGE_PROVIDES "RPM package provides")
|
2024-05-01 22:15:20 -04:00
|
|
|
|
2021-08-06 13:29:09 -05:00
|
|
|
include(CPack)
|