diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index 75a05afc56..b6c4adaa09 100644 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -205,7 +205,7 @@ message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}") set(CPACK_SET_DESTDIR ON CACHE BOOL "Installer package will install hip to CMAKE_INSTALL_PREFIX instead of CPACK_PACKAGING_INSTALL_PREFIX") if (NOT CPACK_SET_DESTDIR) set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/hip" CACHE PATH "Default installation path of hcc installer package") -endif (CPACK_SET_DESTDIR) +endif (NOT CPACK_SET_DESTDIR) # Check if we need to enable ATP marker if(NOT DEFINED COMPILE_HIP_ATP_MARKER) @@ -536,13 +536,13 @@ if (BUILD_HIPIFY_CLANG) endif() if(HIP_PLATFORM STREQUAL "hcc") -message("HCC Package\n") -# Package: hip_hcc -set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_hcc) -configure_file(packaging/hip-hcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) -configure_file(packaging/hip-hcc.postinst ${BUILD_DIR}/postinst @ONLY) -configure_file(packaging/hip-hcc.prerm ${BUILD_DIR}/prerm @ONLY) -add_custom_target(pkg_hip_hcc COMMAND ${CMAKE_COMMAND} . + message("HCC Package\n") + # Package: hip_hcc + set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_hcc) + configure_file(packaging/hip-hcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) + configure_file(packaging/hip-hcc.postinst ${BUILD_DIR}/postinst @ONLY) + configure_file(packaging/hip-hcc.prerm ${BUILD_DIR}/prerm @ONLY) + add_custom_target(pkg_hip_hcc COMMAND ${CMAKE_COMMAND} . COMMAND rm -rf *.deb *.rpm *.tar.gz COMMAND make package COMMAND cp *.deb ${PROJECT_BINARY_DIR} @@ -550,6 +550,18 @@ add_custom_target(pkg_hip_hcc COMMAND ${CMAKE_COMMAND} . COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} WORKING_DIRECTORY ${BUILD_DIR} DEPENDS hip_hcc hip_hcc_static hiprtc) +else() + set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/vdi) + configure_file(packaging/hip-vdi.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) + configure_file(packaging/hip-vdi.postinst ${BUILD_DIR}/postinst @ONLY) + configure_file(packaging/hip-vdi.prerm ${BUILD_DIR}/prerm @ONLY) + add_custom_target(hip_on_vdi 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} ) endif() # Package: hip_nvcc @@ -585,15 +597,6 @@ add_custom_target(pkg_hip_samples COMMAND ${CMAKE_COMMAND} . COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR} WORKING_DIRECTORY ${BUILD_DIR}) -set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/vdi) -configure_file(packaging/hip-vdi.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) -add_custom_target(hip_on_vdi 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: all if(POLICY CMP0037) diff --git a/projects/clr/hipamd/packaging/hip-targets-release.cmake b/projects/clr/hipamd/packaging/hip-targets-release.cmake index 735f56ef26..397f7883bd 100644 --- a/projects/clr/hipamd/packaging/hip-targets-release.cmake +++ b/projects/clr/hipamd/packaging/hip-targets-release.cmake @@ -10,24 +10,25 @@ set(CMAKE_IMPORT_FILE_VERSION 1) get_filename_component(_DIR "${CMAKE_CURRENT_LIST_DIR}" REALPATH) get_filename_component(_IMPORT_PREFIX "${_DIR}/../../../" REALPATH) +if(HIP_PLATFORM STREQUAL "hcc") # Import target "hip::hip_hcc_static" for configuration "Release" -set_property(TARGET hip::hip_hcc_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -if(HIP_COMPILER STREQUAL "clang") -set_target_properties(hip::hip_hcc_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhip_hcc_static.a" - ) -else() -set_target_properties(hip::hip_hcc_static PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" - IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE "hc_am" - IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhip_hcc_static.a" - ) + set_property(TARGET hip::hip_hcc_static APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + if(HIP_COMPILER STREQUAL "clang") + set_target_properties(hip::hip_hcc_static PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhip_hcc_static.a" + ) + else() + set_target_properties(hip::hip_hcc_static PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE "hc_am" + IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhip_hcc_static.a" + ) + endif() + list(APPEND _IMPORT_CHECK_TARGETS hip::hip_hcc_static ) + list(APPEND _IMPORT_CHECK_FILES_FOR_hip::hip_hcc_static "${_IMPORT_PREFIX}/lib/libhip_hcc_static.a" ) + endif() - -list(APPEND _IMPORT_CHECK_TARGETS hip::hip_hcc_static ) -list(APPEND _IMPORT_CHECK_FILES_FOR_hip::hip_hcc_static "${_IMPORT_PREFIX}/lib/libhip_hcc_static.a" ) - # Import target "hip::hip_hcc" for configuration "Release" set_property(TARGET hip::hip_hcc APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) if(HIP_COMPILER STREQUAL "clang") diff --git a/projects/clr/hipamd/packaging/hip-targets.cmake b/projects/clr/hipamd/packaging/hip-targets.cmake index 955ad93b6c..a02d4ca06d 100644 --- a/projects/clr/hipamd/packaging/hip-targets.cmake +++ b/projects/clr/hipamd/packaging/hip-targets.cmake @@ -16,7 +16,11 @@ set(CMAKE_IMPORT_FILE_VERSION 1) set(_targetsDefined) set(_targetsNotDefined) set(_expectedTargets) -foreach(_expectedTarget hip::hip_hcc_static hip::hip_hcc hip::host hip::device) +if(HIP_PLATFORM STREQUAL "hcc") + foreach(_expectedTarget hip:hip_hcc_static hip::hip_hcc hip::host hip::device) +else() + foreach(_expectedTarget hip::hip_hcc hip::host hip::device) +endif() list(APPEND _expectedTargets ${_expectedTarget}) if(NOT TARGET ${_expectedTarget}) list(APPEND _targetsNotDefined ${_expectedTarget}) @@ -48,7 +52,9 @@ get_filename_component(_DIR "${CMAKE_CURRENT_LIST_DIR}" REALPATH) get_filename_component(_IMPORT_PREFIX "${_DIR}/../../../" REALPATH) # Create imported target hip::hip_hcc_static -add_library(hip::hip_hcc_static STATIC IMPORTED) +if(HIP_PLATFORM STREQUAL "hcc") + add_library(hip::hip_hcc_static STATIC IMPORTED) +endif() #if HSA is not under ROCm then provide CMAKE_PREFIX_PATH= find_path(HSA_HEADER hsa/hsa.h @@ -62,11 +68,11 @@ find_path(HSA_HEADER hsa/hsa.h if (HSA_HEADER-NOTFOUND) message (FATAL_ERROR "HSA header not found! ROCM_PATH environment not set") endif() - -set_target_properties(hip::hip_hcc_static PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${HSA_HEADER}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${HSA_HEADER}" -) +if(HIP_PLATFORM STREQUAL "hcc") + set_target_properties(hip::hip_hcc_static PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${HSA_HEADER}" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${HSA_HEADER}") +endif() # Create imported target hip::hip_hcc add_library(hip::hip_hcc SHARED IMPORTED) diff --git a/projects/clr/hipamd/packaging/hip-vdi.postinst b/projects/clr/hipamd/packaging/hip-vdi.postinst new file mode 100755 index 0000000000..2371b53e17 --- /dev/null +++ b/projects/clr/hipamd/packaging/hip-vdi.postinst @@ -0,0 +1,29 @@ +#!/bin/bash +pushd () { + command pushd "$@" > /dev/null +} + +popd () { + command popd "$@" > /dev/null +} + + +ROCMDIR=@ROCM_PATH@ +ROCMLIBDIR=$ROCMDIR/lib +HIPDIR=$ROCMDIR/hip +HIPLIBDIR=$ROCMDIR/hip/lib + +# Soft-link to library files +HIPLIBFILES=$(ls -A $HIPLIBDIR | grep -v [-/$]) +mkdir -p $ROCMLIBDIR +mkdir -p $ROCMLIBDIR/cmake +pushd $ROCMLIBDIR +for f in $HIPLIBFILES +do + ln -s -r -f $HIPLIBDIR/$f $(basename $f) +done +# Make the hip cmake directory link. +pushd cmake +ln -s -r -f $HIPLIBDIR/cmake/hip hip +popd +popd diff --git a/projects/clr/hipamd/packaging/hip-vdi.prerm b/projects/clr/hipamd/packaging/hip-vdi.prerm new file mode 100755 index 0000000000..bf2be36523 --- /dev/null +++ b/projects/clr/hipamd/packaging/hip-vdi.prerm @@ -0,0 +1,31 @@ +#!/bin/bash + +pushd () { + command pushd "$@" > /dev/null +} + +popd () { + command popd "$@" > /dev/null +} + +ROCMDIR=@ROCM_PATH@ +ROCMLIBDIR=$ROCMDIR/lib +HIPDIR=$ROCMDIR/hip +HIPLIBDIR=$ROCMDIR/hip/lib +([ ! -d $ROCMDIR ] || [ ! -d $HIPDIR ]) && exit 0 +([ ! -d $ROCMLIBDIR ] || [ ! -d $HIPLIBDIR ]) && exit 0 + +# Remove soft-links to libraries +HIPLIBFILES=$(ls -A $HIPLIBDIR | grep -v [-/$]) +pushd $ROCMLIBDIR +for f in $HIPLIBFILES; do + [ -e $f ] || continue + rm $(basename $f) +done +pushd cmake +unlink hip +popd +rmdir --ignore-fail-on-non-empty cmake +popd +rmdir --ignore-fail-on-non-empty $ROCMLIBDIR +