summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2022-04-13 18:41:54 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2022-04-19 17:20:14 +0200
commita1d8b9023f499560b967965ef52af2a7de981727 (patch)
tree14d61427b61736f616484257e25b79944affb8e1 /cmake
parent8254ee6a3bc6310cd7701450cc000fb04bf85671 (diff)
CMake: Disable CMAKE_INSTALL_RPATH_USE_LINK_PATH
There should be no need for CMake to add rpaths pointing to directories outside of the build tree to the installed libraries. All relevant install rpaths are handled by qt_apply_rpaths(). Change-Id: If554b1e3c790c2bb04a34e8b0524aab3febf5afc Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtBuild.cmake20
1 files changed, 9 insertions, 11 deletions
diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake
index d5eb7c22cd..24d3614fa6 100644
--- a/cmake/QtBuild.cmake
+++ b/cmake/QtBuild.cmake
@@ -238,18 +238,16 @@ endif("${isSystemDir}" STREQUAL "-1")
# Bottom line: No need to pass anything to CMAKE_INSTALL_RPATH.
set(CMAKE_INSTALL_RPATH "" CACHE STRING "RPATH for installed binaries")
-# add the automatically determined parts of the RPATH
-# which point to directories outside the build tree to the install RPATH
+# By default, don't embed auto-determined RPATHs pointing to directories
+# outside of the build tree, into the installed binaries.
+# This ended up adding rpaths like ${CMAKE_INSTALL_PREFIX}/lib (or /Users/qt/work/install/lib into
+# the official libraries created by the CI) into the non-qtbase libraries, plugins, etc.
#
-# TODO: Do we really want to use this option for official packages? Perhaps make it configurable
-# or remove it? This causes final installed binaries to contain an absolute path RPATH pointing
-# to ${CMAKE_INSTALL_PREFIX}/lib, which on the CI would be something like
-# /Users/qt/work/install/lib.
-# It doesn't seem necessary to me, given that qt_apply_rpaths already applies $ORIGIN-style
-# relocatable paths, but maybe i'm missing something, because the original commit that added the
-# option mentions it's needed in some cross-compilation scenario for program binaries that
-# link against QtCore.
-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+# It should not be necessary, given that qt_apply_rpaths() already adds the necessary rpaths, either
+# relocatable ones or absolute ones, depending on what the platform supports.
+if(NOT QT_NO_DISABLE_CMAKE_INSTALL_RPATH_USE_LINK_PATH)
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
+endif()
# Ensure that GNUInstallDirs's CMAKE_INSTALL_LIBDIR points to the same lib dir that Qt was
# configured with. Currently this is important for QML plugins, which embed an rpath based