summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorStefan Granitz <stefan.graenitz@gmail.com>2018-12-07 09:12:54 +0000
committerStefan Granitz <stefan.graenitz@gmail.com>2018-12-07 09:12:54 +0000
commitd765108cf19c5d12dd35ae240a188a0cbd7dec9b (patch)
treeeb00e66da356359f7dd2eb0ac91d4479614d6a7b /llvm
parent9606d58a5faec6bae872db4981f08e24573f803a (diff)
downloadbcm5719-llvm-d765108cf19c5d12dd35ae240a188a0cbd7dec9b.tar.gz
bcm5719-llvm-d765108cf19c5d12dd35ae240a188a0cbd7dec9b.zip
[CMake] Add support for NO_INSTALL_RPATH argument in llvm_add_library()
Summary: Allow clients to suppress setup of default RPATHs in designated library targets. This is used in LLDB when emitting liblldb as a framework bundle, which itself doesn't load further RPATH-dependent libraries. This follows the approach in add_llvm_executable(). Reviewers: aprantl, JDevlieghere, davide, friss Reviewed By: aprantl Subscribers: mgorny, lldb-commits, llvm-commits, #lldb Differential Revision: https://reviews.llvm.org/D55316 llvm-svn: 348573
Diffstat (limited to 'llvm')
-rw-r--r--llvm/cmake/modules/AddLLVM.cmake14
1 files changed, 9 insertions, 5 deletions
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index c68ec5cbb80..e124e29b983 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -372,12 +372,14 @@ endfunction(set_windows_version_resource_properties)
# May specify header files for IDE generators.
# SONAME
# Should set SONAME link flags and create symlinks
+# NO_INSTALL_RPATH
+# Suppress default RPATH settings in shared libraries.
# PLUGIN_TOOL
# The tool (i.e. cmake target) that this plugin will link against
# )
function(llvm_add_library name)
cmake_parse_arguments(ARG
- "MODULE;SHARED;STATIC;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME"
+ "MODULE;SHARED;STATIC;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME;NO_INSTALL_RPATH"
"OUTPUT_NAME;PLUGIN_TOOL"
"ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS"
${ARGN})
@@ -448,17 +450,19 @@ function(llvm_add_library name)
if(ARG_MODULE)
add_library(${name} MODULE ${ALL_FILES})
- llvm_setup_rpath(${name})
elseif(ARG_SHARED)
add_windows_version_resource_file(ALL_FILES ${ALL_FILES})
add_library(${name} SHARED ${ALL_FILES})
-
- llvm_setup_rpath(${name})
-
else()
add_library(${name} STATIC ${ALL_FILES})
endif()
+ if(NOT ARG_NO_INSTALL_RPATH)
+ if(ARG_MODULE OR ARG_SHARED)
+ llvm_setup_rpath(${name})
+ endif()
+ endif()
+
setup_dependency_debugging(${name} ${LLVM_COMMON_DEPENDS})
if(DEFINED windows_resource_file)
OpenPOWER on IntegriCloud