summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2014-11-28 14:00:07 +0100
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2015-02-05 14:26:44 +0000
commita64cfadaff82a3521d89efc69f72f85017418561 (patch)
tree5879355b3480d03d61c20c371017e5c6b963b738 /mkspecs
parent022c68c97f0a4c3c2569e3b7f69aa0dd7589fd1c (diff)
make the installed meta files play nicely with sysroots
pkg-config .pc files use the raw target paths (and pkg-config patches up -I and -L flags on the fly), so these files were actually already fine. libtool .la files use the magic prefix = to denote the sysroot. this works only with libtool 2.4+ (sept 2010). qmake .prl files have no built-in sysrootification magic, but as they are read by qmake, it's possible to put property references into them. this makes them relocatable, both inside and outside sysroots. Change-Id: I97236ac81e7aba4e4771d14a44cbf59144cc2d3e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/qt_common.prf11
-rw-r--r--mkspecs/features/qt_module.prf22
2 files changed, 25 insertions, 8 deletions
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
index eb65e73079..6a66b76305 100644
--- a/mkspecs/features/qt_common.prf
+++ b/mkspecs/features/qt_common.prf
@@ -24,16 +24,19 @@ contains(TEMPLATE, .*lib) {
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
else: \
rplbase = $$MODULE_BASE_OUTDIR
- host_build: \
+ host_build {
+ qqt_libdir = \$\$\$\$[QT_HOST_LIBS]
qt_libdir = $$[QT_HOST_LIBS]
- else: \
- qt_libdir = $$[QT_INSTALL_LIBS/raw]
+ } else {
+ qqt_libdir = \$\$\$\$[QT_INSTALL_LIBS]
+ qt_libdir = $$[QT_INSTALL_LIBS]
+ }
contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
lib_replace.match = "[^ ']*$$rplbase/lib"
lib_replace.replace =
} else {
lib_replace.match = $$rplbase/lib
- lib_replace.replace = $$qt_libdir
+ lib_replace.replace = $$qqt_libdir
}
lib_replace.CONFIG = path
QMAKE_PRL_INSTALL_REPLACE += lib_replace
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index d213f9e260..8919d41dea 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -181,7 +181,10 @@ load(qt_common)
unix|mingw {
CONFIG += create_pc
QMAKE_PKGCONFIG_DESTDIR = pkgconfig
- QMAKE_PKGCONFIG_LIBDIR = $$qt_libdir
+ host_build: \
+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_HOST_LIBS]
+ else: \
+ QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw]
QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw]
QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME
QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$QT_MAJOR_VERSION ")
@@ -190,12 +193,23 @@ unix|mingw {
QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION))
isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \
QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module
- QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
+ pclib_replace.match = $$lib_replace.match
+ !isEmpty(lib_replace.replace): \
+ pclib_replace.replace = $$QMAKE_PKGCONFIG_LIBDIR
+ pclib_replace.CONFIG = path
+ QMAKE_PKGCONFIG_INSTALL_REPLACE += pclib_replace
unix {
CONFIG += create_libtool explicitlib
- QMAKE_LIBTOOL_LIBDIR = $$qt_libdir
- QMAKE_LIBTOOL_INSTALL_REPLACE += lib_replace
+ host_build: \
+ QMAKE_LIBTOOL_LIBDIR = $$[QT_HOST_LIBS]
+ else: \
+ QMAKE_LIBTOOL_LIBDIR = "=$$[QT_INSTALL_LIBS/raw]"
+ ltlib_replace.match = $$lib_replace.match
+ !isEmpty(lib_replace.replace): \
+ ltlib_replace.replace = $$QMAKE_LIBTOOL_LIBDIR
+ ltlib_replace.CONFIG = path
+ QMAKE_LIBTOOL_INSTALL_REPLACE += ltlib_replace
}
}