From: Mandeep Singh Grang Date: Tue, 8 Nov 2016 00:45:05 +0000 (+0000) Subject: [CMake] Fix llvm_setup_rpath function X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e7ffbb5a0ee6a7f07c507dc757cffc9bb57532e3;p=llvm [CMake] Fix llvm_setup_rpath function Summary: Set _install_rpath to CMAKE_INSTALL_RPATH if it is defined, so that eventually INSTALL_RPATH is set to CMAKE_INSTALL_RPATH. The "if(NOT DEFINED CMAKE_INSTALL_RPATH)" was missing a corresponding else clause. This also cleans up the fix made in r285908. Patch by Azharuddin Mohammed Reviewers: john.brawn, sgundapa, beanz Subscribers: chapuni, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D26289 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286184 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 3dcbabe4d20..11fa225ebf8 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1342,6 +1342,10 @@ function(llvm_externalize_debuginfo name) 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) @@ -1352,25 +1356,21 @@ function(llvm_setup_rpath name) 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()