hip-on-vdi: Enable RUNPATH and versioning

1. Enable versioning for HIP libraries
2. Enable RUNPATH on HIP libraries to find ROCm dependencies
3. Control HIP package install using CPACK_INSTALL_PREFIX

Change-Id: I9096da56592e9c78cdba329011f6e1bae99adaa2


[ROCm/clr commit: 2a271dc418]
Šī revīzija ir iekļauta:
Freddy Paul
2020-04-06 21:35:43 -07:00
revīziju iesūtīja Freddy Paul
vecāks b1904716e1
revīzija 4e4d1b98f3
3 mainīti faili ar 24 papildinājumiem un 16 dzēšanām
+15 -14
Parādīt failu
@@ -61,6 +61,21 @@ add_to_config(_versionInfo HIP_VERSION_MAJOR)
add_to_config(_versionInfo HIP_VERSION_MINOR)
add_to_config(_versionInfo HIP_VERSION_PATCH)
set (HIP_LIB_VERSION_MAJOR ${HIP_VERSION_MAJOR})
set (HIP_LIB_VERSION_MINOR ${HIP_VERSION_MINOR})
if (${ROCM_PATCH_VERSION} )
set (HIP_LIB_VERSION_PATCH ${ROCM_PATCH_VERSION})
else ()
set (HIP_LIB_VERSION_PATCH ${HIP_VERSION_PATCH})
endif ()
set (HIP_LIB_VERSION_STRING "${HIP_LIB_VERSION_MAJOR}.${HIP_LIB_VERSION_MINOR}.${HIP_LIB_VERSION_PATCH}")
if (DEFINED ENV{ROCM_RPATH})
set (CMAKE_INSTALL_RPATH "$ENV{ROCM_RPATH}")
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set (CMAKE_SKIP_BUILD_RPATH TRUE)
endif ()
if(CMAKE_CXX_COMPILER MATCHES ".*hcc")
set(HIP_COMPILER "hcc" CACHE STRING "HIP Compiler")
set(HIP_PLATFORM "hcc" CACHE STRING "HIP Platform")
@@ -333,20 +348,6 @@ if(HIP_PLATFORM STREQUAL "hcc")
src/env.cpp
src/h2f.cpp)
set ( HIP_LIB_VERSION_MAJOR ${HIP_VERSION_MAJOR} )
set ( HIP_LIB_VERSION_MINOR ${HIP_VERSION_MINOR} )
if ( ${ROCM_PATCH_VERSION} )
set ( HIP_LIB_VERSION_PATCH ${ROCM_PATCH_VERSION})
else ()
set ( HIP_LIB_VERSION_PATCH ${HIP_VERSION_PATCH} )
endif ()
set ( HIP_LIB_VERSION_STRING "${HIP_LIB_VERSION_MAJOR}.${HIP_LIB_VERSION_MINOR}.${HIP_LIB_VERSION_PATCH}" )
if ( DEFINED ENV{ROCM_RPATH} )
set (CMAKE_INSTALL_RPATH "$ENV{ROCM_RPATH}" )
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
set (CMAKE_SKIP_BUILD_RPATH TRUE )
endif ()
add_library(hip_hcc SHARED ${SOURCE_FILES_RUNTIME})
add_library(hip_hcc_static STATIC ${SOURCE_FILES_RUNTIME})
@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 2.8.3)
project(hip_vdi)
install(FILES @PROJECT_BINARY_DIR@/lib/libamdhip64.so DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libamdhip64.so.@HIP_LIB_VERSION_MAJOR@ DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libamdhip64.so.@HIP_LIB_VERSION_STRING@ DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libamdhip64_static.a DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libhip_hcc.so DESTINATION lib)
install(FILES @PROJECT_BINARY_DIR@/lib/libhiprtc.so DESTINATION lib)
@@ -13,7 +15,7 @@ install(FILES @PROJECT_BINARY_DIR@/hip-config.cmake @PROJECT_BINARY_DIR@/hip-con
# Packaging steps
#############################
set(CPACK_SET_DESTDIR TRUE)
set(CPACK_INSTALL_PREFIX "/opt/rocm/hip")
set(CPACK_INSTALL_PREFIX @CPACK_INSTALL_PREFIX@)
## cmake generated target files contains IMPORTED_LOCATION_RELEASE etc. which
## is installation path when building the project, which may be different from
+6 -1
Parādīt failu
@@ -1,7 +1,7 @@
#project("hip")
cmake_minimum_required(VERSION 3.5.1)
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-keep-memory -Wl,-Bsymbolic -Wl,--unresolved-symbols=report-all -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/hip_hcc.map.in")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-keep-memory -Wl,-Bsymbolic -Wl,--unresolved-symbols=report-all -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/hip_hcc.map.in")
if(CMAKE_CXX_FLAGS MATCHES "fsanitize=address")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -shared-libasan")
@@ -156,6 +156,11 @@ add_library(amdhip64_static STATIC
$<TARGET_OBJECTS:hip64>
)
set_target_properties(
amdhip64 PROPERTIES
VERSION ${HIP_LIB_VERSION_STRING}
SOVERSION ${HIP_LIB_VERSION_MAJOR}
)
# We expect amdhip64_static to contain objects of vdi and hip. But linker
# let amdhip64_static contain objects of hip only. So we will use a
# a custom amdhip64_static_combiner to combine objects of vid and hip into