From f313c2ea80fcac9beaf4f218dafaa63002adc693 Mon Sep 17 00:00:00 2001 From: Aakanksha Date: Thu, 16 Dec 2021 22:02:35 +0000 Subject: [PATCH] Package hipcc binaries (hipcc.bin and hipconfig.bin) Change-Id: Ib13cbc5fb33ffd03c5fada46f13875bd5ac47800 --- hipamd/CMakeLists.txt | 21 +++++++++++++ hipamd/packaging/hipcc.txt | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 hipamd/packaging/hipcc.txt diff --git a/hipamd/CMakeLists.txt b/hipamd/CMakeLists.txt index e91b3d11c0..71678c470e 100755 --- a/hipamd/CMakeLists.txt +++ b/hipamd/CMakeLists.txt @@ -322,6 +322,12 @@ install(FILES ${PROJECT_BINARY_DIR}/.hipInfo DESTINATION lib) # Install .hipVersion install(FILES ${PROJECT_BINARY_DIR}/.hipVersion DESTINATION bin) +# Install hipcc binaries +if(HIPCC_BIN_DIR) + install(FILES ${HIPCC_BIN_DIR}/hipcc.bin DESTINATION bin) + install(FILES ${HIPCC_BIN_DIR}/hipconfig.bin DESTINATION bin) +endif() + # Install src, bin, include & cmake if necessary execute_process(COMMAND test ${CMAKE_INSTALL_PREFIX} -ef ${CMAKE_CURRENT_SOURCE_DIR} RESULT_VARIABLE INSTALL_SOURCE) @@ -415,6 +421,18 @@ if(HIP_RUNTIME STREQUAL "rocclr") WORKING_DIRECTORY ${BUILD_DIR} ) endif() +# Package: hipcc (if HIPCC_BIN_DIR is available) +message(STATUS "HIPCC_BIN_DIR found at ${HIPCC_BIN_DIR}" ) +set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hipcc) +configure_file(packaging/hipcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) +add_custom_target(pkg_hipcc COMMAND ${CMAKE_COMMAND} . + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR}) + # Package: hip_runtime_nvidia set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip-runtime-nvidia) configure_file(packaging/hip-runtime-nvidia.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) @@ -469,6 +487,9 @@ endif() if(HIP_RUNTIME STREQUAL "rocclr") set(package_list pkg_hip_base hip_on_rocclr pkg_hip_nvcc pkg_hip_doc pkg_hip_samples) + if(HIPCC_BIN_DIR) + set(package_list ${package_list} pkg_hipcc) + endif() if(HIP_CATCH_TEST EQUAL "1") set(package_list ${package_list} pkg_hip_catch_tests) endif() diff --git a/hipamd/packaging/hipcc.txt b/hipamd/packaging/hipcc.txt new file mode 100644 index 0000000000..a056c18b54 --- /dev/null +++ b/hipamd/packaging/hipcc.txt @@ -0,0 +1,63 @@ +cmake_minimum_required(VERSION 3.6.3) +project(hipcc) + +install(PROGRAMS @HIPCC_BIN_DIR@/hipcc.bin DESTINATION bin ) +install(PROGRAMS @HIPCC_BIN_DIR@/hipconfig.bin DESTINATION bin ) + +# hipcc.txt is processed to produce CMakeList.txt, +# pass down value from parent +set(ROCM_DEP_ROCMCORE "@ROCM_DEP_ROCMCORE@") + +############################# +# Packaging steps +############################# +set(CPACK_PACKAGE_NAME "hipcc") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_VERSION_MAJOR @HIP_VERSION_MAJOR@) +set(CPACK_PACKAGE_VERSION_MINOR @HIP_VERSION_MINOR@) +set(CPACK_PACKAGE_VERSION_PATCH @HIP_PACKAGING_VERSION_PATCH@) +set(CPACK_PACKAGE_CONTACT "HIP Support ") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HIP compiler driver (hipcc)") +set(CPACK_PACKAGE_DESCRIPTION "hipcc is a compiler driver utility that will call clang or nvcc, + depending on target, and pass the appropriate include and library options + for the target compiler and HIP infrastructure.") +set(CPACK_SET_DESTDIR TRUE) +set(CPACK_INSTALL_PREFIX @CPACK_INSTALL_PREFIX@ ) +set(CPACK_GENERATOR "TGZ;DEB;RPM") + +#Debian package specific variables +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${CPACK_DEBIAN_PACKAGE_HOMEPAGE} CACHE STRING "https://github.com/RadeonOpenCompute/ROCm") +if(ROCM_DEP_ROCMCORE) + set(CPACK_DEBIAN_PACKAGE_DEPENDS "rocm-core") +endif() +if (DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) + set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) +else() + set(CPACK_DEBIAN_PACKAGE_RELEASE "local") +endif() + +#RPM package specific variables +set(CPACK_RPM_PACKAGE_AUTOREQPROV "NO") +set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/opt" "${ROCM_PATH}" "@CPACK_PACKAGING_INSTALL_PREFIX@" "@CPACK_PACKAGING_INSTALL_PREFIX@/bin") +if(ROCM_DEP_ROCMCORE) + set(CPACK_RPM_PACKAGE_REQUIRES "rocm-core") +endif() +if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE}) + set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE}) +else() + set(CPACK_RPM_PACKAGE_RELEASE "local") +endif() + +#Set rpm distro +if(CPACK_RPM_PACKAGE_RELEASE) + set(CPACK_RPM_PACKAGE_RELEASE_DIST ON) +endif() + +#Prepare final version for the CAPACK use +set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${ROCM_VERSION_FOR_PACKAGE}") + +#Set the names now using CPACK utility +set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") +set(CPACK_RPM_FILE_NAME "RPM-DEFAULT") + +include(CPack)