diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2014-11-28 14:00:07 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-02-05 14:26:44 +0000 |
commit | a64cfadaff82a3521d89efc69f72f85017418561 (patch) | |
tree | 5879355b3480d03d61c20c371017e5c6b963b738 | |
parent | 022c68c97f0a4c3c2569e3b7f69aa0dd7589fd1c (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>
-rw-r--r-- | mkspecs/features/qt_common.prf | 11 | ||||
-rw-r--r-- | mkspecs/features/qt_module.prf | 22 | ||||
-rw-r--r-- | src/angle/src/common/common.pri | 2 |
3 files changed, 26 insertions, 9 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 } } diff --git a/src/angle/src/common/common.pri b/src/angle/src/common/common.pri index 8baedc5e4c..7d3f46d65f 100644 --- a/src/angle/src/common/common.pri +++ b/src/angle/src/common/common.pri @@ -8,7 +8,7 @@ INCLUDEPATH += \ LIBS_PRIVATE = $$QMAKE_LIBS_CORE $$QMAKE_LIBS_GUI lib_replace.match = $$[QT_INSTALL_LIBS/get] -lib_replace.replace = $$[QT_INSTALL_LIBS/raw] +lib_replace.replace = \$\$\$\$[QT_INSTALL_LIBS] lib_replace.CONFIG = path QMAKE_PRL_INSTALL_REPLACE += lib_replace |