summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2014-03-19 15:30:56 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2014-06-10 12:11:51 +0200
commit6374736f37378501793a5191b48545c1fecc0c48 (patch)
tree06516ff2623180d41dddbdf91af3d3701c261a8c /recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch
parent9957ec5d0176912e189cf7e243617ed9c3cde57a (diff)
downloadmeta-qt5-6374736f37378501793a5191b48545c1fecc0c48.tar.gz
recipes-git: Upgrade from latest origin/release to latest origin/stable
* there wont be 5.2.2 release, so start preparation for 5.3.0 * probably latest 5.3.0-beta1 snapshot was released yesterday, so this should be reasonably close * probably wont be merged before creating new release branch for Yocto 1.6 * qtbase: Fix build with X.h included from egl.h * nativesdk-qt*: Add git recipes 5.2.1 isn't compatible with qtbase-native from git * qtbase: upgrade to latest stable revision * 0006-configure-make-pulseaudio-alsa-freetype-a-configurab.patch was upstreamed in: 0c3301f configure: make pulseaudio and alsa configurable options * 0005-qt_module-Fix-pkgconfig-replacement.patch is hopefully resolved in: eaefbe3 snuff -L/-I with system paths when installing meta files a33afed de-duplicate setup of libdir replacement in prl files aa20e7f reshuffle code for clarity ee86ce8 don't attempt to replace include paths in meta files but this needs to be double checked * recipes-git: Upgrade to latest origin/stable * qt5-git.inc: update LICENSE.LGPL checksum * only year was updated: - The Qt Toolkit is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). + The Qt Toolkit is Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). * qtbase: add 2 patches to fix build issues * LIC_FILES_CHKSUM: update other git recipes * qtlocation: bump SRCREV and add to qt5-versions * qt5-versions.inc: Add line for qttools and fix it for nativesdk-qttools * qtquick1: fix LIC_FILES_CHKSUM * qttools: update LIC_FILES_CHKSUM and patches * new qtdiag needs to be disabled as well because it depends on gui which isn't enabled in qtbase-native, disable qtpaths as well Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch')
-rw-r--r--recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch303
1 files changed, 303 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch
new file mode 100644
index 00000000..5f9fd90d
--- /dev/null
+++ b/recipes-qt/qt5/qtbase-git/0002-Add-external-hostbindir-option.patch
@@ -0,0 +1,303 @@
1From 00ad866f82f89ce938e9eaabfc50af3cde72ccfe Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 6 Apr 2013 13:15:07 +0200
4Subject: [PATCH 02/10] Add -external-hostbindir option
5
6* when cross-compiling it's sometimes useful to use existing tools from machine
7 (or in OpenEmbedded built with separate native recipe) when building for target
8
9* this way we can skip bootstraping tools we already have
10
11* qt_functions: temporary remove isEmpty check
12* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
13* isEmpty works correctly only with qmake variables (e.g. $$FOO -
14 isEmpty(FOO)), but doesn't work with system properties like $$[FOO].
15
16* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries
17
18Upstream-Status: Pending
19 is a lot better for upstreaming (and it was already sort of approved by
20 Oswald) but in 5.2.0 I've noticed that he added something similar for
21 android builds
22
23Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
24Signed-off-by: Simon Busch <morphis@gravedo.de>
25---
26 configure | 15 +++++++++++++++
27 mkspecs/features/qt_functions.prf | 9 ++++++++-
28 mkspecs/features/qt_tool.prf | 3 +--
29 qmake/property.cpp | 1 +
30 qtbase.pro | 12 +++++++++---
31 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
32 src/corelib/global/qlibraryinfo.cpp | 3 ++-
33 src/corelib/global/qlibraryinfo.h | 1 +
34 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
35 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
36 tools/configure/configureapp.cpp | 8 ++++++++
37 11 files changed, 51 insertions(+), 13 deletions(-)
38
39diff --git a/configure b/configure
40index bb24a9c..bf7c11e 100755
41--- a/configure
42+++ b/configure
43@@ -777,6 +777,7 @@ QT_HOST_BINS=
44 QT_HOST_LIBS=
45 QT_HOST_DATA=
46 QT_EXT_PREFIX=
47+QT_EXTERNAL_HOST_BINS=
48
49 #flags for SQL drivers
50 QT_CFLAGS_PSQL=
51@@ -898,6 +899,7 @@ while [ "$#" -gt 0 ]; do
52 -testsdir| \
53 -hostdatadir| \
54 -hostbindir| \
55+ -external-hostbindir| \
56 -hostlibdir| \
57 -extprefix| \
58 -sysroot| \
59@@ -1112,6 +1114,9 @@ while [ "$#" -gt 0 ]; do
60 extprefix)
61 QT_EXT_PREFIX="$VAL"
62 ;;
63+ external-hostbindir)
64+ QT_EXTERNAL_HOST_BINS="$VAL"
65+ ;;
66 pkg-config)
67 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
68 CFG_PKGCONFIG="$VAL"
69@@ -2250,6 +2255,10 @@ Installation options:
70 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
71 (default HOSTPREFIX)
72
73+ -external-hostbindir <dir> Use external host executables instead of building them
74+ (not used by defaut)
75+
76+
77 Configure options:
78
79 The defaults (*) are usually acceptable. A plus (+) denotes a default value
80@@ -2914,6 +2923,11 @@ fi
81 # command line and environment validation
82 #-------------------------------------------------------------------------------
83
84+# default is empty, don't call makeabs if it is empty
85+if [ ! -z "$QT_EXTERNAL_HOST_BINS" ]; then
86+ QT_EXTERNAL_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_EXTERNAL_HOST_BINS"`
87+fi
88+
89 # update QT_CONFIG to show our current predefined configuration
90 CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h
91 case "$CFG_QCONFIG" in
92@@ -3594,6 +3608,7 @@ static const char qt_configure_prefix_path_strs[][256 + 12] = {
93 "qt_hbinpath=$QT_HOST_BINS",
94 "qt_hlibpath=$QT_HOST_LIBS",
95 "qt_hdatpath=$QT_HOST_DATA",
96+ "qt_ebinpath=$QT_EXTERNAL_HOST_BINS",
97 "qt_targspec=$shortxspec",
98 "qt_hostspec=$shortspec",
99 #endif
100diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
101index 1dacfed..7229845 100644
102--- a/mkspecs/features/qt_functions.prf
103+++ b/mkspecs/features/qt_functions.prf
104@@ -193,7 +193,14 @@ defineTest(qtAddRpathLink) {
105 defineTest(qtPrepareTool) {
106 $$1 = $$eval(QT_TOOL.$${2}.binary)
107 isEmpty($$1) {
108- $$1 = $$[QT_HOST_BINS]/$$2
109+ $$1 = $$[QT_EXTERNAL_HOST_BINS]/$$2
110+ # for some reason isEmpty does not work here, FIXME before submitting upstream
111+ # DEBUG 1: mkspecs/features/qt_functions.prf:198: calling built-in isEmpty(/OE/oe-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/qt5)
112+ # DEBUG 1: mkspecs/features/qt_functions.prf:198: test function returned true
113+ # DEBUG 1: mkspecs/features/qt_functions.prf:198: taking 'then' branch
114+ !exists($$[QT_EXTERNAL_HOST_BINS]/$$2) {
115+ $$1 = $$[QT_HOST_BINS]/$$2
116+ }
117 exists($$eval($$1).pl) {
118 $$1 = perl -w $$eval($$1).pl
119 } else: contains(QMAKE_HOST.os, Windows) {
120diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
121index f0864f9..50bfac8 100644
122--- a/mkspecs/features/qt_tool.prf
123+++ b/mkspecs/features/qt_tool.prf
124@@ -15,8 +15,7 @@ CONFIG += console
125
126 # If we are doing a prefix build, create a "module" pri which enables
127 # qtPrepareTool() to work with the non-installed build.
128-# Non-bootstrapped tools always need this because of the environment setup.
129-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
130+!build_pass:if(!host_build|!force_bootstrap|force_independent):!exists($$[QT_EXTERNAL_HOST_BINS]) {
131 isEmpty(MODULE):MODULE = $$TARGET
132
133 !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
134diff --git a/qmake/property.cpp b/qmake/property.cpp
135index e50485c..71291ad 100644
136--- a/qmake/property.cpp
137+++ b/qmake/property.cpp
138@@ -75,6 +75,7 @@ static const struct {
139 { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
140 { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
141 { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
142+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
143 { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
144 { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
145 };
146diff --git a/qtbase.pro b/qtbase.pro
147index ed6fc39..2421f41 100644
148--- a/qtbase.pro
149+++ b/qtbase.pro
150@@ -71,16 +71,22 @@ CONFIG -= qt
151
152 #qmake
153 qmake.path = $$[QT_HOST_BINS]
154+qmake.files = $$OUT_PWD/bin/qmake
155+!isEmpty($$[QT_EXTERNAL_HOST_BINS]) {
156+ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/bin/qmake
157+}
158 equals(QMAKE_HOST.os, Windows) {
159- qmake.files = $$OUT_PWD/bin/qmake.exe
160-} else {
161- qmake.files = $$OUT_PWD/bin/qmake
162+ qmake.files = $${qmake.files}.exe
163 }
164 INSTALLS += qmake
165
166 #syncqt
167 syncqt.path = $$[QT_HOST_BINS]
168 syncqt.files = $$PWD/bin/syncqt.pl
169+syncqt.files = $$PWD/bin/syncqt.pl
170+!isEmpty($$[QT_EXTERNAL_HOST_BINS]) {
171+ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/bin/syncqt.pl
172+}
173 INSTALLS += syncqt
174
175 # If we are doing a prefix build, create a "module" pri which enables
176diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
177index 9bda70e..6e3605a 100644
178--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
179+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
180@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
181 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
182 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
183 !!ELSE
184- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
185+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
186 !!ENDIF
187 _qt5_Core_check_file_exists(${imported_location})
188
189@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
190 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
191 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
192 !!ELSE
193- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
194+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
195 !!ENDIF
196 _qt5_Core_check_file_exists(${imported_location})
197
198@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
199 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
200 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
201 !!ELSE
202- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
203+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
204 !!ENDIF
205 _qt5_Core_check_file_exists(${imported_location})
206
207diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
208index 6d25325..3686b17 100644
209--- a/src/corelib/global/qlibraryinfo.cpp
210+++ b/src/corelib/global/qlibraryinfo.cpp
211@@ -333,7 +333,7 @@ QLibraryInfo::isDebugBuild()
212 */
213
214 static const struct {
215- char key[19], value[13];
216+ char key[21], value[13];
217 } qtConfEntries[] = {
218 { "Prefix", "." },
219 { "Documentation", "doc" }, // should be ${Data}/doc
220@@ -359,6 +359,7 @@ static const struct {
221 { "HostBinaries", "bin" },
222 { "HostLibraries", "lib" },
223 { "HostData", "." },
224+ { "ExternalHostBinaries", "" },
225 { "TargetSpec", "" },
226 { "HostSpec", "" },
227 #endif
228diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
229index 0b573c2..b5535ee 100644
230--- a/src/corelib/global/qlibraryinfo.h
231+++ b/src/corelib/global/qlibraryinfo.h
232@@ -88,6 +88,7 @@ public:
233 HostBinariesPath,
234 HostLibrariesPath,
235 HostDataPath,
236+ ExternalHostBinariesPath,
237 TargetSpecPath,
238 HostSpecPath,
239 LastHostPath = HostSpecPath,
240diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
241index 1d94715..301af8f 100644
242--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
243+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
244@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
245 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
246 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
247 !!ELSE
248- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
249+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
250 !!ENDIF
251 _qt5_DBus_check_file_exists(${imported_location})
252
253@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
254 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
255 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
256 !!ELSE
257- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
258+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
259 !!ENDIF
260 _qt5_DBus_check_file_exists(${imported_location})
261
262diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
263index 99d87e2..5621dc0 100644
264--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
265+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
266@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
267 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
268 set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
269 !!ELSE
270- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
271+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
272 !!ENDIF
273 _qt5_Widgets_check_file_exists(${imported_location})
274
275diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
276index cff3f1b..540708b 100644
277--- a/tools/configure/configureapp.cpp
278+++ b/tools/configure/configureapp.cpp
279@@ -1213,6 +1213,13 @@ void Configure::parseCmdLine()
280 dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
281 }
282
283+ else if (configCmdLine.at(i) == "-external-hostbindir") {
284+ ++i;
285+ if (i == argCount)
286+ break;
287+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
288+ }
289+
290 else if (configCmdLine.at(i) == "-make-tool") {
291 ++i;
292 if (i == argCount)
293@@ -3986,6 +3993,7 @@ void Configure::generateQConfigCpp()
294 << " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
295 << " \"qt_hlibpath=" << formatPath(dictionary["QT_HOST_LIBS"]) << "\"," << endl
296 << " \"qt_hdatpath=" << formatPath(dictionary["QT_HOST_DATA"]) << "\"," << endl
297+ << " \"qt_ebinpath=" << formatPath(dictionary["QT_EXTERNAL_HOST_BINS"]) << "\"," << endl
298 << " \"qt_targspec=" << targSpec << "\"," << endl
299 << " \"qt_hostspec=" << hostSpec << "\"," << endl
300 << "#endif" << endl
301--
3021.9.1
303