diff options
Diffstat (limited to 'meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch')
-rw-r--r-- | meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch b/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch new file mode 100644 index 0000000000..e29f85f9aa --- /dev/null +++ b/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch @@ -0,0 +1,106 @@ +From da99a6be6f55cce1363962ffa897b868a6009cd3 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Sat, 27 Apr 2013 23:15:37 +0200 +Subject: [PATCH] qt_module: Fix pkgconfig and libtool replacements +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* in situation like this: + QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm + QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib + QT_INSTALL_LIBS/raw:/usr/lib + QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib + + I don't want the replacement like this: + sed + -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g" + -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g" + "../../lib/pkgconfig/Qt5Core.pc" + >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc" + because that way I'll end with -L/usr/lib in .pc file which is + cross-compile unfriendly, keeping ${libdir}/${includedir} works better + in my case + +* qt_module: Fix paths in .prl files +* qmake does not prefix them with QT_SYSROOT when using them + so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE + variable, which is unsafe for cross-compilation +* writting QT_SYSROOT in .prl files is dangerous for sstate when + builds are in different directories, so we need + SSTATE_SCAN_FILES += "*.pri *.prl" + to make them relocateble + +* fix paths in packageconfig files + This reverts parts of: + + enable path replacement in installed prl files on all platforms + + Task-number: QTBUG-33794 + Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b + Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> + +* to debug this, rebuild qtbase and read build/src/corelib/Makefile +* this is example of broken install_target rule (added line feeds): + -$(SED) -e s,/OE/5.3.1-r0/build/lib,/usr/lib,g + -e 's,/OE/5.3.1-r0/build/include,$$\{includedir},g' + -e 's,/OE/5.3.1-r0/build/lib,$$\{libdir},g' + "../../lib/pkgconfig/Qt5Core.pc" + >"$(INSTALL_ROOT)/usr/lib/pkgconfig/Qt5Core.pc" + change .prf files, create copy of WORKDIR, re-excecute only + do_configure task and compare generated Makefile, repeat until + replace in generated Makefile works ok, then refresh patch and + try complete rebuild for qtbase +* if everything is ok, then try: + image $ grep -R "\-L/usr" . + image $ grep -R "\-I/usr" . + and it should return only few cases of + qmake.conf:QMAKE_LFLAGS_THREAD = -L/usr/lib/threads + for aix* platformas + +Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +Signed-off-by: Jonathan Liu <net147@gmail.com> +--- + mkspecs/features/qt.prf | 13 +++++++++++++ + mkspecs/features/qt_common.prf | 2 +- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf +index ddf99da..9596b87 100644 +--- a/mkspecs/features/qt.prf ++++ b/mkspecs/features/qt.prf +@@ -318,6 +318,19 @@ contains(TEMPLATE, .*app) { + QTPLUGIN = $$manualplugs $$autoplugs + } + ++contains(TEMPLATE, .*lib) { ++ pkgconfig_prefix_replace.match = "prefix=$$[QT_SYSROOT]" ++ pkgconfig_prefix_replace.replace = "prefix=" ++ pkgconfig_prefix_replace.CONFIG = path ++ QMAKE_PKGCONFIG_INSTALL_REPLACE += pkgconfig_prefix_replace ++ ++ # drop -L/usr/lib in .prl files ++ prl_replace.match = "-L\$${libdir}" ++ prl_replace.replace = "" ++ prl_replace.CONFIG = path ++ QMAKE_PRL_INSTALL_REPLACE += prl_replace ++} ++ + QT_PLUGIN_VERIFY = DEPLOYMENT_PLUGIN + contains(QT_CONFIG, static) { + QT_PLUGIN_VERIFY += QTPLUGIN +diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf +index 08b3f3e..8a667f3 100644 +--- a/mkspecs/features/qt_common.prf ++++ b/mkspecs/features/qt_common.prf +@@ -38,7 +38,7 @@ contains(TEMPLATE, .*lib) { + lib_replace.replace = + } else { + lib_replace.match = $$rplbase/lib +- lib_replace.replace = $$qqt_libdir ++ lib_replace.replace = "\$$\\{libdir}" + } + lib_replace.CONFIG = path + QMAKE_PRL_INSTALL_REPLACE += lib_replace |