Index: cmake/modules/AddLLVM.cmake =================================================================== --- cmake/modules/AddLLVM.cmake +++ cmake/modules/AddLLVM.cmake @@ -379,7 +379,7 @@ cmake_parse_arguments(ARG "MODULE;SHARED;STATIC;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME" "OUTPUT_NAME;PLUGIN_TOOL" - "ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS" + "ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS;RPATHS" ${ARGN}) list(APPEND LLVM_COMMON_DEPENDS ${ARG_DEPENDS}) if(ARG_ADDITIONAL_HEADERS) @@ -448,12 +448,12 @@ if(ARG_MODULE) add_library(${name} MODULE ${ALL_FILES}) - llvm_setup_rpath(${name}) + llvm_setup_rpath(${name} RPATHS ${ARG_RPATHS}) elseif(ARG_SHARED) add_windows_version_resource_file(ALL_FILES ${ALL_FILES}) add_library(${name} SHARED ${ALL_FILES}) - llvm_setup_rpath(${name}) + llvm_setup_rpath(${name} RPATHS ${ARG_RPATHS}) else() add_library(${name} STATIC ${ALL_FILES}) @@ -711,7 +711,7 @@ cmake_parse_arguments(ARG "DISABLE_LLVM_LINK_LLVM_DYLIB;IGNORE_EXTERNALIZE_DEBUGINFO;NO_INSTALL_RPATH" "ENTITLEMENTS" - "DEPENDS" + "DEPENDS;RPATHS" ${ARGN}) llvm_process_sources( ALL_FILES ${ARG_UNPARSED_ARGUMENTS} ) @@ -748,7 +748,7 @@ setup_dependency_debugging(${name} ${LLVM_COMMON_DEPENDS}) if(NOT ARG_NO_INSTALL_RPATH) - llvm_setup_rpath(${name}) + llvm_setup_rpath(${name} RPATHS ${ARG_RPATHS}) endif() if(DEFINED windows_resource_file) @@ -1660,17 +1660,11 @@ 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) - set(extra_libdir ${LLVM_LIBRARY_DIR}) - endif() - if (APPLE) set(_install_name_dir INSTALL_NAME_DIR "@rpath") - set(_install_rpath "@loader_path/../lib" ${extra_libdir}) + set(_install_rpath_default "@loader_path/../lib") elseif(UNIX) - set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir}) + set(_install_rpath_default "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") set_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-z,origin ") @@ -1684,6 +1678,18 @@ return() endif() + if(DEFINED ARG_RPATHS) + set(_install_rpath ${ARG_RPATHS}) + else() + set(_install_rpath ${_install_rpath_default}) + endif() + + if(LLVM_INSTALL_PREFIX AND NOT (LLVM_INSTALL_PREFIX STREQUAL CMAKE_INSTALL_PREFIX)) + list(APPEND _install_rpath ${LLVM_LIBRARY_DIR}) + elseif(LLVM_BUILD_LIBRARY_DIR) + list(APPEND _install_rpath ${LLVM_LIBRARY_DIR}) + endif() + set_target_properties(${name} PROPERTIES BUILD_WITH_INSTALL_RPATH On INSTALL_RPATH "${_install_rpath}"