summaryrefslogtreecommitdiffstats
path: root/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2018-04-27 13:37:25 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2019-03-24 11:13:28 +0100
commit40f1b73c92731f4e18751d3a499f269c65c21a96 (patch)
tree734faeca0e9ccade77c66f04320bf50071ecbf6b /meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
parente45f3d305e25ff2aef9e42697e583e6f69a9b6e6 (diff)
downloadopenembedded-core-contrib-jansa/pseudo.tar.gz
qt5: downgrade to 5.6jansa/pseudo
* webosose isn't compatible with newer Qt export COMP=qml-webos-framework; for i in `seq -w 1 999`; do echo $i; bitbake -v -v -DDDD -f -c compile ${COMP} 2>${COMP}-logerr.$i >${COMP}-log.$i; bitbake -v -v -DDDD -f -c package_qa ${COMP} 2>${COMP}-logerr.qa.$i >${COMP}-log.qa.$i || { cp -ra tmp-glibc/work/qemux86-oe-linux/${COMP}/ ${COMP}-workdir-$i; bitbake -c cleansstate ${COMP} ; } done in local.conf I have only this to reproduce the failures: PRSERV_HOST = "localhost:0" BB_NUMBER_THREADS = "8" PARALLEL_MAKE = "-j 32" DISTRO_FEATURES_append = " wayland opengl" ERROR_QA_append = " host-user-contaminated" Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch')
-rw-r--r--meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch226
1 files changed, 226 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
new file mode 100644
index 0000000000..aead543a12
--- /dev/null
+++ b/meta/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
@@ -0,0 +1,226 @@
+From 1e9313a736c9d381c70e723d8075c206bfaf47f5 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 6 Apr 2013 13:15:07 +0200
+Subject: [PATCH] Add -external-hostbindir option
+
+* when cross-compiling it's sometimes useful to use existing tools from machine
+ (or in OpenEmbedded built with separate native recipe) when building for target
+
+* this way we can skip bootstraping tools we already have
+
+* qt_functions: temporary remove isEmpty check
+* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
+* isEmpty works correctly only with qmake variables (e.g. $$FOO -
+ isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
+
+* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
+
+Upstream-Status: Pending
+ is a lot better for upstreaming (and it was already sort of approved by
+ Oswald) but in 5.2.0 I've noticed that he added something similar for
+ android builds
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Simon Busch <morphis@gravedo.de>
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Conflicts:
+ configure
+---
+ configure | 14 ++++++++++++++
+ mkspecs/features/qt_functions.prf | 6 +++++-
+ mkspecs/features/qt_tool.prf | 5 +++--
+ qtbase.pro | 13 ++++++++++---
+ src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
+ src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
+ src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
+ 7 files changed, 38 insertions(+), 12 deletions(-)
+
+diff --git a/configure b/configure
+index 9e552c6..ae724d6 100755
+--- a/configure
++++ b/configure
+@@ -826,6 +826,7 @@ QT_HOST_BINS=
+ QT_HOST_LIBS=
+ QT_HOST_DATA=
+ QT_EXT_PREFIX=
++QT_EXTERNAL_HOST_BINS=
+
+ #flags for SQL drivers
+ QT_CFLAGS_PSQL=
+@@ -945,6 +946,7 @@ while [ "$#" -gt 0 ]; do
+ -testsdir| \
+ -hostdatadir| \
+ -hostbindir| \
++ -external-hostbindir| \
+ -hostlibdir| \
+ -extprefix| \
+ -sysroot| \
+@@ -1175,6 +1177,9 @@ while [ "$#" -gt 0 ]; do
+ extprefix)
+ QT_EXT_PREFIX="$VAL"
+ ;;
++ external-hostbindir)
++ QT_EXTERNAL_HOST_BINS="$VAL"
++ ;;
+ pkg-config)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_PKGCONFIG="$VAL"
+@@ -2444,6 +2449,10 @@ Installation options:
+ -hostdatadir <dir> . Data used by qmake will be installed to <dir>
+ (default HOSTPREFIX)
+
++ -external-hostbindir <dir> Use external host executables instead of building them
++ (not used by defaut)
++
++
+ Configure options:
+
+ The defaults (*) are usually acceptable. A plus (+) denotes a default value
+@@ -3195,6 +3204,11 @@ fi
+ # command line and environment validation
+ #-------------------------------------------------------------------------------
+
++# default is empty, don't call makeabs if it is empty
++if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then
++ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"`
++fi
++
+ # update QT_CONFIG to show our current predefined configuration
+ CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
+ case "$CFG_QCONFIG" in
+diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
+index 4a1d265..a2bdd29 100644
+--- a/mkspecs/features/qt_functions.prf
++++ b/mkspecs/features/qt_functions.prf
+@@ -70,7 +70,11 @@ defineTest(qtHaveModule) {
+ defineTest(qtPrepareTool) {
+ cmd = $$eval(QT_TOOL.$${2}.binary)
+ isEmpty(cmd) {
+- cmd = $$[QT_HOST_BINS]/$$2
++ QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
++ isEmpty(QT_EXTERNAL_HOST_BINS): \
++ cmd = $$[QT_HOST_BINS]/$$2
++ else: \
++ cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2
+ exists($${cmd}.pl) {
+ cmd = perl -w $$system_path($${cmd}.pl)
+ } else: contains(QMAKE_HOST.os, Windows) {
+diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
+index 839c3d6..45934a0 100644
+--- a/mkspecs/features/qt_tool.prf
++++ b/mkspecs/features/qt_tool.prf
+@@ -14,10 +14,11 @@ load(qt_app)
+ CONFIG += console
+ DEFINES *= QT_USE_QSTRINGBUILDER
+
++QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
++
+ # If we are doing a prefix build, create a "module" pri which enables
+ # qtPrepareTool() to work with the non-installed build.
+-# Non-bootstrapped tools always need this because of the environment setup.
+-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
++!build_pass:if(!host_build|!force_bootstrap|force_independent):isEmpty(QT_EXTERNAL_HOST_BINS) {
+ isEmpty(MODULE):MODULE = $$TARGET
+
+ !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
+diff --git a/qtbase.pro b/qtbase.pro
+index 78f9b3a..f4b7fc4 100644
+--- a/qtbase.pro
++++ b/qtbase.pro
+@@ -37,12 +37,16 @@ CONFIG -= qt
+
+ ### installations ####
+
++QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
++
+ #qmake
+ qmake.path = $$[QT_HOST_BINS]
++qmake.files = $$OUT_PWD/bin/qmake
++!isEmpty(QT_EXTERNAL_HOST_BINS) {
++ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake
++}
+ equals(QMAKE_HOST.os, Windows) {
+- qmake.files = $$OUT_PWD/bin/qmake.exe
+-} else {
+- qmake.files = $$OUT_PWD/bin/qmake
++ qmake.files = $${qmake.files}.exe
+ }
+ INSTALLS += qmake
+
+@@ -59,6 +63,9 @@ INSTALLS += fixqt4headers
+ #syncqt
+ syncqt.path = $$[QT_HOST_BINS]
+ syncqt.files = $$PWD/bin/syncqt.pl
++!isEmpty(QT_EXTERNAL_HOST_BINS) {
++ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl
++}
+ INSTALLS += syncqt
+
+ # If we are doing a prefix build, create a "module" pri which enables
+diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
+index 91a4eb6..25df27c 100644
+--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Core_check_file_exists(${imported_location})
+
+@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Core_check_file_exists(${imported_location})
+
+@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Core_check_file_exists(${imported_location})
+
+diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
+index 1d94715..301af8f 100644
+--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_DBus_check_file_exists(${imported_location})
+
+@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_DBus_check_file_exists(${imported_location})
+
+diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+index 99d87e2..5621dc0 100644
+--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+ set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+ _qt5_Widgets_check_file_exists(${imported_location})
+