diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -865,9 +865,16 @@ if(NOT ARG_NO_INSTALL_RPATH) llvm_setup_rpath(${name}) - elseif (LLVM_LOCAL_RPATH) + else() + # If CMAKE_BUILD_RPATH is set keep BUILD_WITH_INSTALL_RPATH off so it's used. + if("${CMAKE_BUILD_RPATH}" STREQUAL "") + set(build_with_install ON) + else() + set(build_with_install OFF) + endif() + set_target_properties(${name} PROPERTIES - BUILD_WITH_INSTALL_RPATH On + BUILD_WITH_INSTALL_RPATH ${build_with_install} INSTALL_RPATH "${LLVM_LOCAL_RPATH}") endif() @@ -2113,8 +2120,15 @@ return() endif() + # If CMAKE_BUILD_RPATH is set keep BUILD_WITH_INSTALL_RPATH off so it's used. + if("${CMAKE_BUILD_RPATH}" STREQUAL "") + set(build_with_install ON) + else() + set(build_with_install OFF) + endif() + set_target_properties(${name} PROPERTIES - BUILD_WITH_INSTALL_RPATH On + BUILD_WITH_INSTALL_RPATH ${build_with_install} INSTALL_RPATH "${_install_rpath}" ${_install_name_dir}) endfunction()