Fix RPATH handling (#122)

Fix rpath handling

- remove explicit add to CMAKE_INSTALL_RPATH
- remove overriding INSTALL_RPATH_USE_LINK_PATH for exes
这个提交包含在:
Jonathan R. Madsen
2022-08-01 14:19:19 -05:00
提交者 GitHub
父节点 641225f883
当前提交 97d17a8ef8
修改 8 个文件,包含 8 行新增57 行删除
-21
查看文件
@@ -319,27 +319,6 @@ macro(OMNITRACE_ADD_INTERFACE_LIBRARY _TARGET)
endif()
endmacro()
function(OMNITRACE_ADD_RPATH)
set(_DIRS)
foreach(_ARG ${ARGN})
if(EXISTS "${_ARG}" AND IS_DIRECTORY "${_ARG}")
list(APPEND _DIRS "${_ARG}")
endif()
get_filename_component(_DIR "${_ARG}" DIRECTORY)
if(EXISTS "${_DIR}" AND IS_DIRECTORY "${_DIR}")
list(APPEND _DIRS "${_DIR}")
endif()
endforeach()
if(_DIRS)
list(REMOVE_DUPLICATES _DIRS)
string(REPLACE ";" ":" _RPATH "${_DIRS}")
# message(STATUS "\n\tRPATH additions: ${_RPATH}\n")
set(CMAKE_INSTALL_RPATH
"${CMAKE_INSTALL_RPATH}:${_RPATH}"
PARENT_SCOPE)
endif()
endfunction()
# -----------------------------------------------------------------------
# function add_feature(<NAME> <DOCSTRING>) Add a project feature, whose activation is
# specified by the existence of the variable <NAME>, to the list of enabled/disabled
-13
查看文件
@@ -169,7 +169,6 @@ if(OMNITRACE_USE_ROCTRACER)
INTERFACE OMNITRACE_USE_ROCTRACER)
target_link_libraries(omnitrace-roctracer INTERFACE roctracer::roctracer
omnitrace::omnitrace-hip)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${roctracer_LIBRARY_DIRS}")
endif()
# ----------------------------------------------------------------------------------------#
@@ -182,7 +181,6 @@ if(OMNITRACE_USE_ROCPROFILER)
omnitrace_target_compile_definitions(omnitrace-rocprofiler
INTERFACE OMNITRACE_USE_ROCPROFILER)
target_link_libraries(omnitrace-rocprofiler INTERFACE rocprofiler::rocprofiler)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${rocprofiler_LIBRARY_DIRS}")
endif()
# ----------------------------------------------------------------------------------------#
@@ -196,7 +194,6 @@ if(OMNITRACE_USE_ROCM_SMI)
omnitrace_target_compile_definitions(omnitrace-rocm-smi
INTERFACE OMNITRACE_USE_ROCM_SMI)
target_link_libraries(omnitrace-rocm-smi INTERFACE rocm-smi::rocm-smi)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${rocm-smi_LIBRARY_DIRS}")
endif()
# ----------------------------------------------------------------------------------------#
@@ -348,7 +345,6 @@ else()
omnitrace-dyninst INTERFACE DYNINST_API_RT="${OMNITRACE_DYNINST_API_RT}")
endif()
omnitrace_add_rpath(${Dyninst_LIBRARIES})
target_link_libraries(omnitrace-dyninst INTERFACE Dyninst::Dyninst)
else() # updated Dyninst CMake system was not found
set(_BOOST_COMPONENTS atomic system thread date_time)
@@ -399,15 +395,6 @@ else()
omnitrace-dyninst INTERFACE DYNINST_API_RT="${OMNITRACE_DYNINST_API_RT}")
endif()
if(Boost_DIR)
get_filename_component(Boost_RPATH_DIR "${Boost_DIR}" DIRECTORY)
get_filename_component(Boost_RPATH_DIR "${Boost_RPATH_DIR}" DIRECTORY)
if(EXISTS "${Boost_RPATH_DIR}" AND IS_DIRECTORY "${Boost_RPATH_DIR}")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${Boost_RPATH_DIR}")
endif()
endif()
omnitrace_add_rpath(${DYNINST_LIBRARIES} ${Boost_LIBRARIES})
target_link_libraries(omnitrace-dyninst INTERFACE ${DYNINST_LIBRARIES}
${Boost_LIBRARIES})
foreach(
第三方依赖
+1 -1
+2 -4
查看文件
@@ -28,10 +28,8 @@ target_compile_definitions(omnitrace-avail PRIVATE OMNITRACE_EXTERN_COMPONENTS=0
target_link_libraries(omnitrace-avail PRIVATE omnitrace::omnitrace-compile-definitions
omnitrace::omnitrace-interface-library)
set_target_properties(
omnitrace-avail
PROPERTIES BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}"
INSTALL_RPATH_USE_LINK_PATH ON
INSTALL_RPATH "${OMNITRACE_EXE_INSTALL_RPATH}")
omnitrace-avail PROPERTIES BUILD_RPATH "\$ORIGIN:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}"
INSTALL_RPATH "${OMNITRACE_EXE_INSTALL_RPATH}")
install(
TARGETS omnitrace-avail
@@ -19,8 +19,7 @@ target_link_libraries(
omnitrace::omnitrace-timemory)
set_target_properties(
omnitrace-critical-trace
PROPERTIES BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}"
INSTALL_RPATH_USE_LINK_PATH ON
PROPERTIES BUILD_RPATH "\$ORIGIN:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}"
INSTALL_RPATH "${OMNITRACE_EXE_INSTALL_RPATH}")
install(
+1 -2
查看文件
@@ -32,8 +32,7 @@ target_link_libraries(
set_target_properties(
omnitrace-exe
PROPERTIES OUTPUT_NAME omnitrace
BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}"
INSTALL_RPATH_USE_LINK_PATH ON
BUILD_RPATH "\$ORIGIN:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}"
INSTALL_RPATH "${OMNITRACE_EXE_INSTALL_RPATH}")
if(OMNITRACE_BUILD_DYNINST)
+1 -7
查看文件
@@ -8,13 +8,7 @@
#
# ----------------------------------------------------------------------------- #
string(REPLACE ":" ";" _INSTALL_RPATH "${CMAKE_INSTALL_RPATH}")
if(_INSTALL_RPATH)
list(REMOVE_DUPLICATES _INSTALL_RPATH)
endif()
string(REPLACE ";" ":" _INSTALL_RPATH "${_INSTALL_RPATH}")
string(REPLACE "::" ":" OMNITRACE_LIB_INSTALL_RPATH
"\$ORIGIN:\$ORIGIN/omnitrace:${_INSTALL_RPATH}")
set(OMNITRACE_LIB_INSTALL_RPATH "\$ORIGIN:\$ORIGIN/omnitrace")
add_subdirectory(common)
add_subdirectory(omnitrace)
+2 -7
查看文件
@@ -35,7 +35,6 @@ function(OMNITRACE_CONFIGURE_PYTARGET _TARGET _VERSION)
${PROJECT_BINARY_DIR}/lib/python/site-packages/omnitrace
PDB_OUTPUT_DIRECTORY
${PROJECT_BINARY_DIR}/lib/python/site-packages/omnitrace
INSTALL_RPATH_USE_LINK_PATH ON
${EXTRA_PROPERTIES})
set(_PYLIB ${CMAKE_INSTALL_PYTHONDIR}/omnitrace)
@@ -50,12 +49,8 @@ function(OMNITRACE_CONFIGURE_PYTARGET _TARGET _VERSION)
"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
endif()
set_target_properties(
${_TARGET}
PROPERTIES
INSTALL_RPATH
"\$ORIGIN:\$ORIGIN/${LIB_RELPATH}:\$ORIGIN/../../../..:${CMAKE_INSTALL_RPATH}"
)
set_target_properties(${_TARGET} PROPERTIES INSTALL_RPATH
"\$ORIGIN:\$ORIGIN/${LIB_RELPATH}")
install(
TARGETS ${_TARGET}