diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2013-04-17 14:55:36 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-19 12:03:36 +0200 |
commit | 5aa349628e2d4913e5aeddd6557d578f34e31fc0 (patch) | |
tree | 0f6eb6c82593d33df489d9a48371b871392d8f39 /mkspecs/features/data | |
parent | 5ea3845bd0bf4dec9828270ab18e7c94d596975e (diff) |
Handle usr-move without forcing absolute paths
In qtbase commit 7ac58d1ff0815566ba1de09519299b5119e5ee91 (Make cmake
packages installed to /usr non-relocatable., 2013-02-11), we made
cmake config files non-relocatable if they were installed to
the /usr prefix. That was assumed to mean that this was a distro
or platform package, and was a workaround for the usr-move problem
on Fedora and ArchLinux.
However, cmake bug http://public.kitware.com/Bug/view.php?id=14041
showed that forcing absolute paths in this situation is not desirable
in cross compiling scenarios. CMake commit 6c613b433c45efb0bb013a6bd668cbb8ac740259
(Handle usr-move without forcing absolute paths (#14041), 2013-04-03)
addressed the problem in CMake, and this commit is an equivalent.
Change-Id: I065a6230bc618aa980fae6ca511ae10df4cd62c2
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'mkspecs/features/data')
-rw-r--r-- | mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index d88f6e1224..a77a6bd22d 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -3,7 +3,21 @@ if (CMAKE_VERSION VERSION_LESS 2.8.3) message(FATAL_ERROR \"Qt 5 requires at least CMake version 2.8.3\") endif() -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) +!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND) +get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH) +# Use original install prefix when loaded through a +# cross-prefix symbolic link such as /lib -> /usr/lib. +get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH) +get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH) +if(_realCurr STREQUAL _realOrig) + get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR\" PATH) +else() + get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) +endif() +unset(_realOrig) +unset(_realCurr) +unset(_IMPORT_PREFIX) +!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) !!ELSE set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") |