Index: cmake/modules/AddLLVM.cmake =================================================================== --- cmake/modules/AddLLVM.cmake +++ cmake/modules/AddLLVM.cmake @@ -1326,6 +1326,10 @@ endfunction() function(llvm_setup_rpath name) + if(CMAKE_INSTALL_RPATH) + return() + endif() + if(LLVM_INSTALL_PREFIX AND NOT (LLVM_INSTALL_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)) set(extra_libdir ${LLVM_LIBRARY_DIR}) elseif(LLVM_BUILD_LIBRARY_DIR) @@ -1336,25 +1340,21 @@ set(_install_name_dir INSTALL_NAME_DIR "@rpath") set(_install_rpath "@loader_path/../lib" ${extra_libdir}) elseif(UNIX) - if(NOT DEFINED CMAKE_INSTALL_RPATH) - set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") - elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT LLVM_LINKER_IS_GOLD) - # $ORIGIN is not interpreted at link time by ld.bfd - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-rpath-link,${LLVM_LIBRARY_OUTPUT_INTDIR} ") - endif() + set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") + set_property(TARGET ${name} APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,-z,origin ") + elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT LLVM_LINKER_IS_GOLD) + # $ORIGIN is not interpreted at link time by ld.bfd + set_property(TARGET ${name} APPEND_STRING PROPERTY + LINK_FLAGS " -Wl,-rpath-link,${LLVM_LIBRARY_OUTPUT_INTDIR} ") endif() else() return() endif() - if(DEFINED _install_rpath) - set_target_properties(${name} PROPERTIES - BUILD_WITH_INSTALL_RPATH On - INSTALL_RPATH "${_install_rpath}" - ${_install_name_dir}) - endif() + set_target_properties(${name} PROPERTIES + BUILD_WITH_INSTALL_RPATH On + INSTALL_RPATH "${_install_rpath}" + ${_install_name_dir}) endfunction()