summaryrefslogtreecommitdiffstats
path: root/meta/recipes-qt/qt5/qtbase/0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch
diff options
context:
space:
mode:
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.patch106
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