From 98fd53c2ef9f1539abd7c28294d3322324b1af66 Mon Sep 17 00:00:00 2001 From: Ranjith Ramakrishnan Date: Tue, 26 Mar 2024 15:03:32 -0700 Subject: [PATCH] SWDEV-442738 - Static package generation for hip Generate static package by combining binary and dev components. Binary and dev component dependencies are added to the static package dependencies Package name will have suffix static-dev/devel Change-Id: I7eb187ceaf2af7dfaf6ff9f56de20dac72881a12 [ROCm/clr commit: 2ce57184d3e05bb481e8c5d21d8c2519793afb24] --- projects/clr/hipamd/CMakeLists.txt | 1 + projects/clr/hipamd/packaging/CMakeLists.txt | 20 ++++++++++++++++++- projects/clr/hipamd/src/hiprtc/CMakeLists.txt | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index d3f7375f25..e79f090d6c 100755 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -46,6 +46,7 @@ list(APPEND CMAKE_MODULE_PATH ${HIP_COMMON_DIR}/cmake) option(__HIP_ENABLE_PCH "Enable/Disable pre-compiled hip headers" ON) option(HIP_OFFICIAL_BUILD "Enable/Disable for mainline/staging builds" OFF) option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" OFF) +option(BUILD_SHARED_LIBS "Build the shared library" ON) if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi") diff --git a/projects/clr/hipamd/packaging/CMakeLists.txt b/projects/clr/hipamd/packaging/CMakeLists.txt index 8f1a1268fc..d3b0588921 100644 --- a/projects/clr/hipamd/packaging/CMakeLists.txt +++ b/projects/clr/hipamd/packaging/CMakeLists.txt @@ -56,6 +56,8 @@ if(HIP_PLATFORM STREQUAL "amd" ) PATTERN ".hipInfo" EXCLUDE) else() install(PROGRAMS ${PROJECT_BINARY_DIR}/lib/libamdhip64.a DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary) + install(PROGRAMS ${PROJECT_BINARY_DIR}/lib/libhiprtc.a DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary) + install(PROGRAMS ${PROJECT_BINARY_DIR}/lib/libhiprtc-builtins.a DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary) endif()#End BUILD_SHARED_LIBS #TODO:This do not belong in BINARY package. @@ -277,5 +279,21 @@ if(NOT ROCM_DEP_ROCMCORE) 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() - +# package name and dependencies for static package +if(NOT BUILD_SHARED_LIBS) + set(CPACK_RPM_STATIC_PACKAGE_NAME "hip-static-devel") + set(CPACK_DEBIAN_STATIC_PACKAGE_NAME "hip-static-dev") + set(CPACK_COMPONENT_STATIC_DESCRIPTION "HIP:Heterogenous-computing Interface for Portability [Static Libraries - AMD]") + set(CPACK_RPM_STATIC_PACKAGE_REQUIRES "${CPACK_RPM_DEV_PACKAGE_REQUIRES}") + string(APPEND CPACK_RPM_STATIC_PACKAGE_REQUIRES ", hsa-rocr-static-devel >= 1.3, rocminfo-static-devel, comgr-static-devel >= 2.0, rocm-llvm, hipcc-static-devel") + set(CPACK_DEBIAN_STATIC_PACKAGE_DEPENDS "${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS}") + string(APPEND CPACK_DEBIAN_STATIC_PACKAGE_DEPENDS ", hsa-rocr-static-dev (>= 1.3), rocminfo-static-dev, comgr-static-dev (>= 3.0), rocm-llvm, hipcc-static-dev") +endif() include(CPack) +#static package generation +# Group binary and dev component to single package +if(NOT BUILD_SHARED_LIBS) + cpack_add_component_group("static") + cpack_add_component( binary GROUP static ) + cpack_add_component( dev GROUP static ) +endif() diff --git a/projects/clr/hipamd/src/hiprtc/CMakeLists.txt b/projects/clr/hipamd/src/hiprtc/CMakeLists.txt index c26ffbed16..a39294a422 100644 --- a/projects/clr/hipamd/src/hiprtc/CMakeLists.txt +++ b/projects/clr/hipamd/src/hiprtc/CMakeLists.txt @@ -186,6 +186,7 @@ set_target_properties(hiprtc-builtins PROPERTIES CXX_EXTENSIONS OFF POSITION_INDEPENDENT_CODE ON LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib + ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib LINKER_LANGUAGE CXX VERSION ${HIP_LIB_VERSION_STRING})