qt5base-lts/qmake
Alexandru Croitor 4ac872639e Make Qt relocatable
[ChangeLog][QtCore] Qt installations on the host system can now be
relocated, i.e. moved to other directories.

Add a new feature 'relocatable' that's by default enabled for
non-static builds
  - on platforms where libdl is available,
  - on macOS when configured with -framework,
  - on Windows.

If the feature is enabled, the directory where plugins, translations
and other assets are loaded from is determined by the location of
libQt5Core.so and the lib dir (bin dir on Windows) relative to the
prefix.

For static builds, the feature 'relocatable' is off by default. It can
be turned on manually by passing -feature-relocatable to configure. In
that case, QLibraryInfo::location(QLibraryInfo::TranslationsPaths) and
friends will return paths rooted in the user application's directory.

The installed and relocated qmake determines properties like
QT_INSTALL_PREFIX and QT_HOST_PREFIX from the location of the qmake
executable and the host bin dir relative to the host prefix. This is
now always done, independent of the 'relocatable' feature.

Note that qmake is currently only relocatable within an environment
that has the same layout as the original build machine due to absolute
paths to the original prefix in .prl, .pc and .la files.
This will be addressed in a separate patch.

Task-number: QTBUG-15234
Change-Id: I7319e2856d8fe17f277082d71216442f52580633
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-09-07 20:02:45 +02:00
..
doc Merge remote-tracking branch 'origin/5.12' into 5.13 2019-08-12 13:23:11 +02:00
generators Merge remote-tracking branch 'origin/5.13' into 5.14 2019-09-04 07:03:54 +02:00
library Merge remote-tracking branch 'origin/5.13' into dev 2019-07-22 06:50:42 +02:00
cachekeys.h Updated license headers 2016-01-21 18:55:18 +00:00
main.cpp Fix qinstall on Windows for directories containing read-only files 2019-08-15 09:24:14 +02:00
Makefile.unix Add support for calendars beside Gregorian 2019-08-20 13:41:21 +02:00
Makefile.unix.macos Merge remote-tracking branch 'origin/5.8' into dev 2016-12-13 09:39:20 +01:00
Makefile.unix.mingw fix "make clean" of qmake in a builddir with spaces on mingw 2017-12-14 18:06:31 +00:00
Makefile.unix.unix Move the readlink(2) wrapper to qcore_unix.cpp 2017-07-08 02:18:16 +00:00
Makefile.unix.win32 qmake: add $$read_registry() function 2019-01-05 20:33:07 +00:00
Makefile.win32 Add support for calendars beside Gregorian 2019-08-20 13:41:21 +02:00
meta.cpp qmake: Remove dead code 2019-04-05 07:48:34 +00:00
meta.h qmake: Remove dead code 2019-04-05 07:48:34 +00:00
option.cpp Make Qt relocatable 2019-09-07 20:02:45 +02:00
option.h Remove QMake's -createstub option 2019-08-03 14:48:10 +02:00
project.cpp qmake: use std names on a linked list 2019-05-13 16:39:22 +00:00
project.h qmake: use std names on a linked list 2019-05-13 16:39:22 +00:00
property.cpp Compile with QT_STRICT_ITERATORS defined 2018-11-26 07:04:24 +00:00
property.h move generation of qconfig.cpp (and qt.conf) to qmake-based configure 2016-12-13 18:56:12 +00:00
qmake_pch.h qmake: move QT_BEGIN_NAMESPACE to correct place 2018-12-19 19:21:35 +00:00
qmake-aux.pro revert to building qmake with qconfig.cpp 2017-01-06 20:09:08 +00:00
qmake.pro Add support for calendars beside Gregorian 2019-08-20 13:41:21 +02:00