Skip to content

Commit

Permalink
[CMake] Don't enable BUILD_WITH_INSTALL_RPATH when using custom build…
Browse files Browse the repository at this point in the history
… rpath

When `BUILD_WITH_INSTALL_RPATH` is enabled it prevents using a custom rpath only
for the build tree as the install rpath will be used. This makes it impossible to run a
runtimes build when compiling with Clang and wanting the installed rpath to be
empty (i.e. `-DCMAKE_BUILD_RPATH="<some path>" -DCMAKE_SKIP_INSTALL_RPATH=ON`).

Disable `BUILD_WITH_INSTALL_RPATH` when `CMAKE_BUILD_RPATH` is non-empty to
allow for such build scenarios.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D93177
  • Loading branch information
tambry committed Jan 8, 2021
1 parent ae25a39 commit 0ebc1fb
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions llvm/cmake/modules/AddLLVM.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -865,10 +865,13 @@ macro(add_llvm_executable name)

if(NOT ARG_NO_INSTALL_RPATH)
llvm_setup_rpath(${name})
elseif (LLVM_LOCAL_RPATH)
set_target_properties(${name} PROPERTIES
BUILD_WITH_INSTALL_RPATH On
INSTALL_RPATH "${LLVM_LOCAL_RPATH}")
else()
# Enable BUILD_WITH_INSTALL_RPATH unless CMAKE_BUILD_RPATH is set.
if(NOT "${CMAKE_BUILD_RPATH}" STREQUAL "")
set_property(TARGET ${name} PROPERTY BUILD_WITH_INSTALL_RPATH ON)
endif()

set_property(TARGET ${name} PROPERTY INSTALL_RPATH "${LLVM_LOCAL_RPATH}")
endif()

if(DEFINED windows_resource_file)
Expand Down Expand Up @@ -2113,8 +2116,12 @@ function(llvm_setup_rpath name)
return()
endif()

# Enable BUILD_WITH_INSTALL_RPATH unless CMAKE_BUILD_RPATH is set.
if(NOT "${CMAKE_BUILD_RPATH}" STREQUAL "")
set_property(TARGET ${name} PROPERTY BUILD_WITH_INSTALL_RPATH ON)
endif()

set_target_properties(${name} PROPERTIES
BUILD_WITH_INSTALL_RPATH On
INSTALL_RPATH "${_install_rpath}"
${_install_name_dir})
endfunction()
Expand Down

0 comments on commit 0ebc1fb

Please sign in to comment.