Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -672,20 +672,6 @@ set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) -set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) -if (APPLE) - set(CMAKE_INSTALL_NAME_DIR "@rpath") - set(CMAKE_INSTALL_RPATH "@executable_path/../lib") -else(UNIX) - if(NOT DEFINED CMAKE_INSTALL_RPATH) - set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}") - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,origin") - endif() - endif(NOT DEFINED CMAKE_INSTALL_RPATH) -endif() - if(APPLE AND DARWIN_LTO_LIBRARY) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-lto_library -Wl,${DARWIN_LTO_LIBRARY}") Index: cmake/modules/AddLLVM.cmake =================================================================== --- cmake/modules/AddLLVM.cmake +++ cmake/modules/AddLLVM.cmake @@ -476,6 +476,26 @@ endif() endif() + if(ARG_SHARED) + if (APPLE) + set_target_properties( ${name} PROPERTIES INSTALL_NAME_DIR "@rpath" ) + set_target_properties( ${name} PROPERTIES INSTALL_RPATH "@executable_path/../lib" ) + else(UNIX) + if(NOT DEFINED CMAKE_INSTALL_RPATH) + set_target_properties( ${name} PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ) + if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") + set_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-z,origin") + endif() + endif(NOT DEFINED CMAKE_INSTALL_RPATH) + endif() + if (${CMAKE_PROJECT_NAME} MATCHES "LLVM") + set_target_properties( ${name} PROPERTIES BUILD_WITH_INSTALL_RPATH ON ) + else() + set_target_properties( ${name} PROPERTIES BUILD_WITH_INSTALL_RPATH OFF ) + set_property(TARGET ${name} APPEND_STRING PROPERTY INSTALL_RPATH ":${LLVM_LIBRARY_DIR}") + endif() + endif(ARG_SHARED) + if(ARG_SHARED AND UNIX) if(NOT APPLE AND ARG_SONAME) get_target_property(output_name ${name} OUTPUT_NAME) @@ -675,6 +695,25 @@ # macros. set_target_properties( ${name} PROPERTIES DEFINE_SYMBOL "" ) + if (APPLE) + set_target_properties( ${name} PROPERTIES INSTALL_NAME_DIR "@rpath" ) + set_target_properties( ${name} PROPERTIES INSTALL_RPATH "@executable_path/../lib" ) + else(UNIX) + if(NOT DEFINED CMAKE_INSTALL_RPATH) + set_target_properties( ${name} PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ) + if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") + set_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-z,origin") + endif() + endif(NOT DEFINED CMAKE_INSTALL_RPATH) + endif() + + if (${CMAKE_PROJECT_NAME} MATCHES "LLVM") + set_target_properties( ${name} PROPERTIES BUILD_WITH_INSTALL_RPATH ON ) + else() + set_target_properties( ${name} PROPERTIES BUILD_WITH_INSTALL_RPATH OFF ) + set_property(TARGET ${name} APPEND_STRING PROPERTY INSTALL_RPATH ":${LLVM_LIBRARY_DIR}") + endif() + if (LLVM_EXPORTED_SYMBOL_FILE) add_llvm_symbol_exports( ${name} ${LLVM_EXPORTED_SYMBOL_FILE} ) endif(LLVM_EXPORTED_SYMBOL_FILE)