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:
revīziju iesūtīja
Freddy Paul
vecāks
b1904716e1
revīzija
4e4d1b98f3
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Atsaukties uz šo jaunā problēmā
Block a user