SWDEV-444700 - CMAKE - Fix RUNPATH

These RUNPATH changes make it so libraries can be found without setting
LD_LIBRARY_PATH.

Mostly tested on installed RDC binaries and libraries. The
build binaries should also work.

Change-Id: Ifd908a5b61d24dfcbb1d08d21b4ee830156d8643
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
Tento commit je obsažen v:
Galantsev, Dmitrii
2024-02-12 22:11:10 -06:00
rodič 81e3a78b1f
revize 32806681ca
6 změnil soubory, kde provedl 13 přidání a 0 odebrání
+3
Zobrazit soubor
@@ -191,6 +191,9 @@ if(BUILD_STANDALONE)
endif()
message("-----------ROCM_DIR : " ${ROCM_DIR})
# this is needed for INSTALL_RPATH "\$ORIGIN" property to work correctly
set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE CACHE BOOL "Set all RPATH to be ORIGIN-based")
## Add address sanitizer
if(${ADDRESS_SANITIZER})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g")
Binární soubor nebyl zobrazen.
+2
Zobrazit soubor
@@ -129,6 +129,8 @@ if(RDC_LIB_MODULES)
EXPORT rdcTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}
COMPONENT ${CLIENT_COMPONENT})
set_target_properties(${RDC_LIB_MODULES}
PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..")
endif()
install(FILES ${PROJECT_SOURCE_DIR}/include/rdc/rdc.h
+2
Zobrazit soubor
@@ -40,6 +40,8 @@ set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY
SOVERSION "${VERSION_MAJOR}")
set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY
VERSION "${SO_VERSION_STRING}")
set_target_properties(${BOOTSTRAP_LIB}
PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/rdc")
# If the library is a release, strip the target library
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
+2
Zobrazit soubor
@@ -75,6 +75,8 @@ set_property(TARGET ${RDC_LIB} PROPERTY
SOVERSION "${VERSION_MAJOR}")
set_property(TARGET ${RDC_LIB} PROPERTY
VERSION "${SO_VERSION_STRING}")
set_target_properties(${RDC_LIB}
PROPERTIES INSTALL_RPATH "\$ORIGIN")
# If the library is a release, strip the target library
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
+4
Zobrazit soubor
@@ -80,6 +80,10 @@ link_directories(${RSMI_LIB_DIR})
add_executable(${SERVER_DAEMON_EXE} "${SERVER_SRC_LIST}")
# help find librdc_bootstrap.so at runtime
set_target_properties(${SERVER_DAEMON_EXE}
PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib")
target_link_libraries(${SERVER_DAEMON_EXE} pthread rt gRPC::grpc++
cap dl rocm_smi64 rdc_bootstrap)