summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@theqtcompany.com>2015-10-01 16:21:45 +0200
committerDavid Schulz <david.schulz@theqtcompany.com>2016-02-03 14:43:28 +0000
commitff7fd3b1a9b39d217928f3e1d8f16341b9fd6fec (patch)
tree021fe5da9af026394eadc2c7727ff2a20b93a447
parentc7cd9cb4661dd1623368d39e66c716f2222d357b (diff)
downloadmeta-qt5-ff7fd3b1a9b39d217928f3e1d8f16341b9fd6fec.tar.gz
Add Windows host support.
Change-Id: I964ede0e49b63f0ff85adc2ad4d260abbe5f8f79 Signed-off-by: David Schulz <david.schulz@theqtcompany.com> Reviewed-by: Samuli Piippo <samuli.piippo@theqtcompany.com>
-rw-r--r--classes/qmake5.bbclass4
-rw-r--r--classes/qmake5_base.bbclass71
-rw-r--r--recipes-qt/qt5/nativesdk-qtbase_git.bb59
-rw-r--r--recipes-qt/qt5/qtbase-native_git.bb13
-rw-r--r--recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch2
-rw-r--r--recipes-qt/qt5/qtbase/0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch180
-rw-r--r--recipes-qt/qt5/qtbase/0001-QMake-Add-option-to-set-qt.conf-file.patch114
-rw-r--r--recipes-qt/qt5/qtbase/0002-configure-Separate-host-and-build-platform.patch643
-rw-r--r--recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch39
-rw-r--r--recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch229
-rw-r--r--recipes-qt/qt5/qtbase/0010-Add-external-hostbindir-option-for-native-sdk.patch134
-rw-r--r--recipes-qt/qt5/qtbase_git.bb39
-rw-r--r--recipes-qt/qt5/qtdeclarative_git.bb5
-rw-r--r--recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch6
-rw-r--r--recipes-qt/qt5/qtwayland-native_git.bb2
-rw-r--r--recipes-qt/qt5/qtwebengine_git.bb2
16 files changed, 1037 insertions, 505 deletions
diff --git a/classes/qmake5.bbclass b/classes/qmake5.bbclass
index 2b43f2e3..1a960e8f 100644
--- a/classes/qmake5.bbclass
+++ b/classes/qmake5.bbclass
@@ -17,7 +17,3 @@ do_install() {
17do_install_class-native() { 17do_install_class-native() {
18 qmake5_base_native_do_install 18 qmake5_base_native_do_install
19} 19}
20
21do_install_class-nativesdk() {
22 qmake5_base_nativesdk_do_install
23}
diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass
index a766cc6b..13bb0abc 100644
--- a/classes/qmake5_base.bbclass
+++ b/classes/qmake5_base.bbclass
@@ -1,6 +1,8 @@
1# hardcode linux, because that's what 0001-Add-linux-oe-g-platform.patch adds 1# hardcode linux, because that's what 0001-Add-linux-oe-g-platform.patch adds
2OE_QMAKE_PLATFORM_NATIVE = "linux-oe-g++" 2OE_QMAKE_PLATFORM_NATIVE = "linux-oe-g++"
3OE_QMAKE_PLATFORM = "linux-oe-g++" 3OE_QMAKE_PLATFORM = "linux-oe-g++"
4OE_QMAKE_PLATFORM_NATIVE_mingw32 = "win32-g++-oe"
5OE_QMAKE_PLATFORM_mingw32 = "win32-g++-oe"
4 6
5# Add -d to show debug output from every qmake call, but it prints *a lot*, better to add it only to debugged recipe 7# Add -d to show debug output from every qmake call, but it prints *a lot*, better to add it only to debugged recipe
6OE_QMAKE_DEBUG_OUTPUT ?= "" 8OE_QMAKE_DEBUG_OUTPUT ?= ""
@@ -30,8 +32,6 @@ EXTRA_OEMAKE = " \
30 OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \ 32 OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \
31" 33"
32 34
33OE_QMAKESPEC = "${QMAKE_MKSPEC_PATH_NATIVE}/mkspecs/${OE_QMAKE_PLATFORM_NATIVE}"
34OE_XQMAKESPEC = "${QMAKE_MKSPEC_PATH}/mkspecs/${OE_QMAKE_PLATFORM}"
35OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" 35OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake"
36OE_QMAKE_COMPILER = "${CC}" 36OE_QMAKE_COMPILER = "${CC}"
37OE_QMAKE_CC = "${CC}" 37OE_QMAKE_CC = "${CC}"
@@ -43,14 +43,18 @@ OE_QMAKE_LDFLAGS = "${LDFLAGS}"
43OE_QMAKE_AR = "${AR}" 43OE_QMAKE_AR = "${AR}"
44OE_QMAKE_STRIP = "echo" 44OE_QMAKE_STRIP = "echo"
45OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner" 45OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner"
46 46OE_QMAKE_QTCONF_PATH = "${WORKDIR}/qt.conf"
47# this one needs to be exported, because qmake reads it from shell env 47OE_QMAKE_QTCONF = "-qtconf ${OE_QMAKE_QTCONF_PATH}"
48export QT_CONF_PATH = "${WORKDIR}/qt.conf"
49 48
50inherit qmake5_paths 49inherit qmake5_paths
51 50
52do_generate_qt_config_file() { 51do_generate_qt_config_file() {
53 cat > ${QT_CONF_PATH} <<EOF 52 generate_qt_config_file_paths
53 generate_qt_config_file_effective_paths
54}
55
56generate_qt_config_file_paths() {
57 cat > ${OE_QMAKE_QTCONF_PATH} <<EOF
54[Paths] 58[Paths]
55Prefix = ${OE_QMAKE_PATH_PREFIX} 59Prefix = ${OE_QMAKE_PATH_PREFIX}
56Headers = ${OE_QMAKE_PATH_HEADERS} 60Headers = ${OE_QMAKE_PATH_HEADERS}
@@ -70,12 +74,21 @@ Tests = ${OE_QMAKE_PATH_TESTS}
70HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} 74HostBinaries = ${OE_QMAKE_PATH_HOST_BINS}
71HostData = ${OE_QMAKE_PATH_HOST_DATA} 75HostData = ${OE_QMAKE_PATH_HOST_DATA}
72HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} 76HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS}
73HostSpec = ${OE_QMAKESPEC} 77HostSpec = ${OE_QMAKE_PLATFORM_NATIVE}
74TartgetSpec = ${OE_XQMAKESPEC} 78TargetSpec = ${OE_QMAKE_PLATFORM}
75ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} 79ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
76Sysroot = ${STAGING_DIR_TARGET} 80Sysroot = ${STAGING_DIR_TARGET}
77EOF 81EOF
78} 82}
83
84generate_qt_config_file_effective_paths() {
85 cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF
86[EffectivePaths]
87HostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
88HostData = ${OE_QMAKE_PATH_HOST_DATA}
89HostPrefix = ${STAGING_DIR_NATIVE}${prefix_native}
90EOF
91}
79# 92#
80# Allows to override following values (as in version 5.0.1) 93# Allows to override following values (as in version 5.0.1)
81# Prefix The default prefix for all paths. 94# Prefix The default prefix for all paths.
@@ -154,40 +167,42 @@ qmake5_base_do_configure () {
154 # for config.tests to read this 167 # for config.tests to read this
155 export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}" 168 export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}"
156 169
157 CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST" 170 CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_QTCONF} ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST"
158 ${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling $CMD" 171 ${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_QTCONF} ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling $CMD"
159} 172}
160 173
161qmake5_base_native_do_install() { 174qmake5_base_native_do_install() {
162 oe_runmake install INSTALL_ROOT=${D} 175 oe_runmake install INSTALL_ROOT=${D}
163} 176}
164 177
165qmake5_base_nativesdk_do_install() { 178qmake5_base_fix_install() {
166 # Fix install paths for all 179 STAGING_PATH=$1
167 find -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_HOST},(INSTALL_ROOT),g" 180 if [ -d ${D}${STAGING_PATH} ] ; then
168 181 echo "Some files are installed in wrong directory ${D}${STAGING_PATH}"
169 oe_runmake install INSTALL_ROOT=${D} 182 cp -ra ${D}${STAGING_PATH}/* ${D}
183 rm -rf ${D}${STAGING_PATH}
184 # remove empty dirs
185 TMP=`dirname ${D}${STAGING_PATH}`
186 while test ${TMP} != ${D}; do
187 rmdir ${TMP}
188 TMP=`dirname ${TMP}`;
189 done
190 fi
170} 191}
171 192
172qmake5_base_do_install() { 193qmake5_base_do_install() {
173 # Fix install paths for all 194 # Fix install paths for all
174 find -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g" 195 find -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g"
196 find -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_HOST},(INSTALL_ROOT),g"
197 find -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE},(INSTALL_ROOT),g"
175 198
176 oe_runmake install INSTALL_ROOT=${D} 199 oe_runmake install INSTALL_ROOT=${D}
177 200
178 # everything except HostData and HostBinaries is prefixed with sysroot value, 201 # everything except HostData and HostBinaries is prefixed with sysroot value,
179 # but we cannot remove sysroot override, because that's useful for pkg-config etc 202 # but we cannot remove sysroot override, because that's useful for pkg-config etc
180 # In some cases like QtQmlDevTools in qtdeclarative, the sed above does not work, 203 # concurrent builds may cause qmake to regenerate Makefiles and override the above
181 # fix them manually 204 # sed changes. If that happens, move files manually to correct location.
182 if [ -d ${D}${STAGING_DIR_TARGET} ] ; then 205 qmake5_base_fix_install ${STAGING_DIR_TARGET}
183 echo "Some files are installed in wrong directory ${D}${STAGING_DIR_TARGET}" 206 qmake5_base_fix_install ${STAGING_DIR_HOST}
184 cp -ra ${D}${STAGING_DIR_TARGET}/* ${D} 207 qmake5_base_fix_install ${STAGING_DIR_NATIVE}
185 rm -rf ${D}${STAGING_DIR_TARGET}
186 # remove empty dirs
187 TMP=`dirname ${D}/${STAGING_DIR_TARGET}`
188 while test ${TMP} != ${D}; do
189 rmdir ${TMP}
190 TMP=`dirname ${TMP}`;
191 done
192 fi
193} 208}
diff --git a/recipes-qt/qt5/nativesdk-qtbase_git.bb b/recipes-qt/qt5/nativesdk-qtbase_git.bb
index 3d4900eb..ba361113 100644
--- a/recipes-qt/qt5/nativesdk-qtbase_git.bb
+++ b/recipes-qt/qt5/nativesdk-qtbase_git.bb
@@ -1,5 +1,6 @@
1DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]" 1DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]"
2DEPENDS = "nativesdk-zlib nativesdk-dbus qtbase-native" 2DEPENDS = "nativesdk-zlib nativesdk-dbus qtbase-native"
3DEPENDS_remove_mingw32 = "nativesdk-dbus"
3SECTION = "libs" 4SECTION = "libs"
4HOMEPAGE = "http://qt-project.org" 5HOMEPAGE = "http://qt-project.org"
5 6
@@ -23,18 +24,18 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/qtbase:"
23# common for qtbase-native, qtbase-nativesdk and qtbase 24# common for qtbase-native, qtbase-nativesdk and qtbase
24SRC_URI += "\ 25SRC_URI += "\
25 file://0001-Add-linux-oe-g-platform.patch \ 26 file://0001-Add-linux-oe-g-platform.patch \
26 file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ 27 file://0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch \
27 file://0003-Add-external-hostbindir-option.patch \
28 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \ 28 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \
29 file://0005-configure-bump-path-length-from-256-to-512-character.patch \ 29 file://0005-configure-bump-path-length-from-256-to-512-character.patch \
30 file://0006-QOpenGLPaintDevice-sub-area-support.patch \ 30 file://0006-QOpenGLPaintDevice-sub-area-support.patch \
31 file://0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch \ 31 file://0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch \
32 file://0002-configure-Separate-host-and-build-platform.patch \
32" 33"
33 34
34# common for qtbase-native and nativesdk-qtbase 35# common for qtbase-native and nativesdk-qtbase
35SRC_URI += " \ 36SRC_URI += " \
36 file://0009-Always-build-uic.patch \ 37 file://0009-Always-build-uic.patch \
37 file://0010-Add-external-hostbindir-option-for-native-sdk.patch \ 38 file://0001-QMake-Add-option-to-set-qt.conf-file.patch \
38" 39"
39 40
40# CMake's toolchain configuration of nativesdk-qtbase 41# CMake's toolchain configuration of nativesdk-qtbase
@@ -50,10 +51,11 @@ FILES_${PN}-tools-dev = " \
50 ${includedir} \ 51 ${includedir} \
51 ${FILES_SOLIBSDEV} ${libdir}/*.la \ 52 ${FILES_SOLIBSDEV} ${libdir}/*.la \
52 ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \ 53 ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \
54 ${OE_QMAKE_PATH_LIBS}/*.prl \
53" 55"
54 56
55FILES_${PN}-tools-staticdev = " \ 57FILES_${PN}-tools-staticdev = " \
56 ${libdir}/libQt5Bootstrap.a \ 58 ${OE_QMAKE_PATH_LIBS}/*.a \
57" 59"
58 60
59FILES_${PN}-tools-dbg = " \ 61FILES_${PN}-tools-dbg = " \
@@ -88,7 +90,7 @@ OE_QMAKE_PATH_HOST_DATA = "${libdir}${QT_DIR_NAME}"
88OE_QMAKE_PATH_HOST_LIBS = "${libdir}" 90OE_QMAKE_PATH_HOST_LIBS = "${libdir}"
89 91
90do_generate_qt_config_file() { 92do_generate_qt_config_file() {
91 cat > ${QT_CONF_PATH} <<EOF 93 cat > ${OE_QMAKE_QTCONF_PATH} <<EOF
92[Paths] 94[Paths]
93Prefix = ${OE_QMAKE_PATH_PREFIX} 95Prefix = ${OE_QMAKE_PATH_PREFIX}
94Headers = ${OE_QMAKE_PATH_HEADERS} 96Headers = ${OE_QMAKE_PATH_HEADERS}
@@ -108,18 +110,18 @@ Tests = ${OE_QMAKE_PATH_TESTS}
108HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} 110HostBinaries = ${OE_QMAKE_PATH_HOST_BINS}
109HostData = ${OE_QMAKE_PATH_HOST_DATA} 111HostData = ${OE_QMAKE_PATH_HOST_DATA}
110HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} 112HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS}
111HostSpec = ${OE_QMAKESPEC} 113HostSpec = ${OE_QMAKE_PLATFORM_NATIVE}
112TartgetSpec = ${OE_XQMAKESPEC} 114TargetSpec = ${OE_QMAKE_PLATFORM}
113ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} 115ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
114Sysroot = 116Sysroot =
115EOF 117EOF
116} 118}
117 119
118do_generate_qt_config_file_append() { 120do_generate_qt_config_file_append() {
119 cat >> ${QT_CONF_PATH} <<EOF 121 cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF
120 122
121[EffectivePaths] 123[EffectivePaths]
122Prefix=.. 124Prefix=${B}
123EOF 125EOF
124} 126}
125 127
@@ -137,21 +139,10 @@ export OE_QMAKE_LDFLAGS
137export OE_QMAKE_AR 139export OE_QMAKE_AR
138export OE_QMAKE_STRIP 140export OE_QMAKE_STRIP
139 141
140# another exception is that we need to run bin/qmake, because EffectivePaths are relative to qmake location
141OE_QMAKE_QMAKE_ORIG = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake"
142OE_QMAKE_QMAKE = "bin/qmake"
143
144do_configure() { 142do_configure() {
145 # we need symlink in path relative to source, because
146 # EffectivePaths:Prefix is relative to qmake location
147 if [ ! -e ${B}/bin/qmake ]; then
148 mkdir -p ${B}/bin
149 ln -sf ${OE_QMAKE_QMAKE_ORIG} ${B}/bin/qmake
150 fi
151
152 ${S}/configure -v \ 143 ${S}/configure -v \
153 -opensource -confirm-license \ 144 -opensource -confirm-license \
154 -sysroot ${STAGING_DIR_NATIVE} \ 145 -sysroot ${STAGING_DIR_TARGET} \
155 -no-gcc-sysroot \ 146 -no-gcc-sysroot \
156 -system-zlib \ 147 -system-zlib \
157 -no-libjpeg \ 148 -no-libjpeg \
@@ -185,6 +176,7 @@ do_configure() {
185 -testsdir ${OE_QMAKE_PATH_TESTS} \ 176 -testsdir ${OE_QMAKE_PATH_TESTS} \
186 -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \ 177 -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \
187 -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \ 178 -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \
179 -host-option CROSS_COMPILE=${HOST_PREFIX} \
188 -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \ 180 -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \
189 -no-glib \ 181 -no-glib \
190 -no-iconv \ 182 -no-iconv \
@@ -194,20 +186,24 @@ do_configure() {
194 -nomake libs \ 186 -nomake libs \
195 -no-compile-examples \ 187 -no-compile-examples \
196 -no-rpath \ 188 -no-rpath \
197 -platform ${OE_QMAKESPEC} \ 189 -platform ${OE_QMAKE_PLATFORM_NATIVE} \
198 -xplatform linux-oe-g++ \ 190 -xplatform ${OE_QMAKE_PLATFORM} \
199 ${QT_CONFIG_FLAGS} 191 ${QT_CONFIG_FLAGS}
200 192
201 bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}" 193 ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_QTCONF} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}"
202} 194}
203 195
204# Set the EXTRA_QTLIB variable to e.g. Xml, in order to not remove libQt5Xml.so.* 196# Set the EXTRA_QTLIB variable to e.g. Xml, in order to not remove libQt5Xml.so.*
205EXTRA_QTLIB ?= "" 197EXTRA_QTLIB = "Core"
198
199PRESERVE_PATTERN = "libQt5%s.so*"
200PRESERVE_PATTERN_mingw32 = "libQt5%s.a"
206 201
207python __anonymous () { 202python __anonymous () {
208 templibs = "" 203 templibs = ""
204 preservepattern = d.getVar("PRESERVE_PATTERN", True)
209 for e in d.getVar("EXTRA_QTLIB", True).split(): 205 for e in d.getVar("EXTRA_QTLIB", True).split():
210 templibs = "%s -not -name 'libQt5%s.so*' -and" % (templibs, e) 206 templibs = ("%s -not -name '" + preservepattern + "' -and") % (templibs, e)
211 d.setVar("QTLIBSPRESERVE", templibs) 207 d.setVar("QTLIBSPRESERVE", templibs)
212} 208}
213 209
@@ -217,12 +213,6 @@ do_install() {
217 213
218 oe_runmake install INSTALL_ROOT=${D} 214 oe_runmake install INSTALL_ROOT=${D}
219 215
220 install -m 755 ${B}/bin/qmake-target ${D}${OE_QMAKE_PATH_HOST_BINS}/qmake
221
222 # for modules which are still using syncqt and call qtPrepareTool(QMAKE_SYNCQT, syncqt)
223 # e.g. qt3d, qtwayland
224 ln -sf syncqt.pl ${D}${OE_QMAKE_PATH_QT_BINS}/syncqt
225
226 # remove things unused in nativesdk, we need the headers, Qt5Core 216 # remove things unused in nativesdk, we need the headers, Qt5Core
227 # and Qt5Bootstrap. 217 # and Qt5Bootstrap.
228 rm -rf ${D}${datadir} \ 218 rm -rf ${D}${datadir} \
@@ -230,7 +220,6 @@ do_install() {
230 ${D}${libdir}/cmake \ 220 ${D}${libdir}/cmake \
231 ${D}${libdir}/pkgconfig 221 ${D}${libdir}/pkgconfig
232 find ${D}${libdir} -maxdepth 1 -name 'lib*' -and -not -type d -and \ 222 find ${D}${libdir} -maxdepth 1 -name 'lib*' -and -not -type d -and \
233 -not -name 'libQt5Core.so*' -and \
234 ${QTLIBSPRESERVE} \ 223 ${QTLIBSPRESERVE} \
235 -not -name 'libQt5Bootstrap.a' \ 224 -not -name 'libQt5Bootstrap.a' \
236 -exec rm '{}' ';' 225 -exec rm '{}' ';'
@@ -252,7 +241,6 @@ fakeroot do_generate_qt_environment_file() {
252 echo 'export OE_QMAKE_CXX=$CXX' >> $script 241 echo 'export OE_QMAKE_CXX=$CXX' >> $script
253 echo 'export OE_QMAKE_LINK=$CXX' >> $script 242 echo 'export OE_QMAKE_LINK=$CXX' >> $script
254 echo 'export OE_QMAKE_AR=$AR' >> $script 243 echo 'export OE_QMAKE_AR=$AR' >> $script
255 echo 'export QT_CONF_PATH=${OE_QMAKE_PATH_HOST_BINS}/qt.conf' >> $script
256 echo 'export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`' >> $script 244 echo 'export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`' >> $script
257 echo 'export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`' >> $script 245 echo 'export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`' >> $script
258 echo 'export OE_QMAKE_MOC=${OE_QMAKE_PATH_HOST_BINS}/moc' >> $script 246 echo 'export OE_QMAKE_MOC=${OE_QMAKE_PATH_HOST_BINS}/moc' >> $script
@@ -268,6 +256,9 @@ fakeroot do_generate_qt_environment_file() {
268 sed -i -e 's:${SDKPATHNATIVE}:$OECORE_NATIVE_SYSROOT:g' $script 256 sed -i -e 's:${SDKPATHNATIVE}:$OECORE_NATIVE_SYSROOT:g' $script
269} 257}
270 258
259fakeroot do_generate_qt_environment_file_mingw32() {
260}
261
271addtask generate_qt_environment_file after do_install before do_package 262addtask generate_qt_environment_file after do_install before do_package
272 263
273SRCREV = "f7f4dde80e13ff1c05a9399297ffb746ab505e62" 264SRCREV = "f7f4dde80e13ff1c05a9399297ffb746ab505e62"
diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb
index 14e85165..dc328d77 100644
--- a/recipes-qt/qt5/qtbase-native_git.bb
+++ b/recipes-qt/qt5/qtbase-native_git.bb
@@ -17,31 +17,27 @@ require qt5-git.inc
17# common for qtbase-native, qtbase-nativesdk and qtbase 17# common for qtbase-native, qtbase-nativesdk and qtbase
18SRC_URI += "\ 18SRC_URI += "\
19 file://0001-Add-linux-oe-g-platform.patch \ 19 file://0001-Add-linux-oe-g-platform.patch \
20 file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ 20 file://0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch \
21 file://0003-Add-external-hostbindir-option.patch \
22 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \ 21 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \
23 file://0005-configure-bump-path-length-from-256-to-512-character.patch \ 22 file://0005-configure-bump-path-length-from-256-to-512-character.patch \
24 file://0006-QOpenGLPaintDevice-sub-area-support.patch \ 23 file://0006-QOpenGLPaintDevice-sub-area-support.patch \
25 file://0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch \ 24 file://0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch \
26 file://0008-configure-paths-for-target-qmake-properly.patch \ 25 file://0002-configure-Separate-host-and-build-platform.patch \
27" 26"
28 27
29# common for qtbase-native and nativesdk-qtbase 28# common for qtbase-native and nativesdk-qtbase
30SRC_URI += " \ 29SRC_URI += " \
31 file://0009-Always-build-uic.patch \ 30 file://0009-Always-build-uic.patch \
32 file://0010-Add-external-hostbindir-option-for-native-sdk.patch \ 31 file://0001-QMake-Add-option-to-set-qt.conf-file.patch \
33" 32"
34 33
35CLEANBROKEN = "1" 34CLEANBROKEN = "1"
36 35
37QT_CONF_PATH = "${B}/qt.conf"
38
39do_generate_qt_config_file() { 36do_generate_qt_config_file() {
40 : 37 :
41} 38}
42 39
43EXTRA_OECONF = " \ 40EXTRA_OECONF = " \
44 -prefix ${prefix} \
45 -sysroot ${STAGING_DIR_NATIVE} \ 41 -sysroot ${STAGING_DIR_NATIVE} \
46 -no-gcc-sysroot \ 42 -no-gcc-sysroot \
47 -system-zlib \ 43 -system-zlib \
@@ -63,10 +59,13 @@ EXTRA_OECONF = " \
63 -release \ 59 -release \
64 -prefix ${OE_QMAKE_PATH_PREFIX} \ 60 -prefix ${OE_QMAKE_PATH_PREFIX} \
65 -bindir ${OE_QMAKE_PATH_BINS} \ 61 -bindir ${OE_QMAKE_PATH_BINS} \
62 -hostbindir ${OE_QMAKE_PATH_BINS} \
66 -libdir ${OE_QMAKE_PATH_LIBS} \ 63 -libdir ${OE_QMAKE_PATH_LIBS} \
64 -hostlibdir ${OE_QMAKE_PATH_LIBS} \
67 -headerdir ${OE_QMAKE_PATH_HEADERS} \ 65 -headerdir ${OE_QMAKE_PATH_HEADERS} \
68 -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \ 66 -archdatadir ${OE_QMAKE_PATH_ARCHDATA} \
69 -datadir ${OE_QMAKE_PATH_DATA} \ 67 -datadir ${OE_QMAKE_PATH_DATA} \
68 -hostdatadir ${QMAKE_MKSPEC_PATH_NATIVE} \
70 -docdir ${OE_QMAKE_PATH_DOCS} \ 69 -docdir ${OE_QMAKE_PATH_DOCS} \
71 -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \ 70 -sysconfdir ${OE_QMAKE_PATH_SETTINGS} \
72 -no-glib \ 71 -no-glib \
diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
index 9f5bb639..93cc1388 100644
--- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
+++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
@@ -49,7 +49,7 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
49--- 49---
50 configure | 71 ++++++++++++++++--------- 50 configure | 71 ++++++++++++++++---------
51 mkspecs/features/configure.prf | 4 +- 51 mkspecs/features/configure.prf | 4 +-
52 mkspecs/linux-oe-g++/qmake.conf | 42 +++++++++++++++ 52 mkspecs/linux-oe-g++/qmake.conf | 43 +++++++++++++++
53 mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++ 53 mkspecs/linux-oe-g++/qplatformdefs.h | 100 +++++++++++++++++++++++++++++++++++
54 4 files changed, 189 insertions(+), 28 deletions(-) 54 4 files changed, 189 insertions(+), 28 deletions(-)
55 create mode 100644 mkspecs/linux-oe-g++/qmake.conf 55 create mode 100644 mkspecs/linux-oe-g++/qmake.conf
diff --git a/recipes-qt/qt5/qtbase/0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch b/recipes-qt/qt5/qtbase/0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch
new file mode 100644
index 00000000..7ce3a9ee
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch
@@ -0,0 +1,180 @@
1From 5363b4d6d1f3c5683267ec3e190b85eca964eef8 Mon Sep 17 00:00:00 2001
2From: David Schulz <david.schulz@theqtcompany.com>
3Date: Fri, 3 Jul 2015 16:06:59 +0200
4Subject: [PATCH] Add win32-g++-oe mkspec that uses the OE_ environment.
5
6Upstream-Status: Inappropriate [embedded specific]
7 too OE specific, probably cannot be upstreamed
8---
9 mkspecs/win32-g++-oe/qmake.conf | 109 +++++++++++++++++++++++++++++++++++
10 mkspecs/win32-g++-oe/qplatformdefs.h | 42 ++++++++++++++
11 2 files changed, 151 insertions(+)
12 create mode 100644 mkspecs/win32-g++-oe/qmake.conf
13 create mode 100644 mkspecs/win32-g++-oe/qplatformdefs.h
14
15diff --git a/mkspecs/win32-g++-oe/qmake.conf b/mkspecs/win32-g++-oe/qmake.conf
16new file mode 100644
17index 0000000..1c8879a
18--- /dev/null
19+++ b/mkspecs/win32-g++-oe/qmake.conf
20@@ -0,0 +1,109 @@
21+#
22+# qmake configuration for win32-g++
23+#
24+# Written for MinGW / gcc 4.6 or higher
25+#
26+# Cross compile example for i686-w64-mingw32-g++:
27+# configure -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32-
28+#
29+
30+load(device_config)
31+
32+MAKEFILE_GENERATOR = MINGW
33+QMAKE_PLATFORM = win32 mingw
34+CONFIG += debug_and_release debug_and_release_target precompile_header
35+DEFINES += UNICODE
36+QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
37+
38+QMAKE_EXT_OBJ = .o
39+QMAKE_EXT_RES = _res.o
40+
41+QMAKE_COMPILER = $(OE_QMAKE_COMPILER) gcc
42+
43+QMAKE_CC = $(OE_QMAKE_CC)
44+QMAKE_LEX = flex
45+QMAKE_LEXFLAGS =
46+QMAKE_YACC = byacc
47+QMAKE_YACCFLAGS = -d
48+QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS)
49+QMAKE_CFLAGS_DEPS = -M
50+QMAKE_CFLAGS_WARN_ON = -Wall -Wextra
51+QMAKE_CFLAGS_WARN_OFF = -w
52+QMAKE_CFLAGS_RELEASE = -O2
53+QMAKE_CFLAGS_DEBUG = -g
54+QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
55+QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections
56+QMAKE_CFLAGS_SSE2 = -msse2 -mstackrealign
57+QMAKE_CFLAGS_SSE3 = -msse3
58+QMAKE_CFLAGS_SSSE3 = -mssse3
59+QMAKE_CFLAGS_SSE4_1 = -msse4.1
60+QMAKE_CFLAGS_SSE4_2 = -msse4.2
61+QMAKE_CFLAGS_AVX = -mavx
62+QMAKE_CFLAGS_AVX2 = -mavx2
63+QMAKE_CFLAGS_NEON = -mfpu=neon
64+
65+QMAKE_CXX = $(OE_QMAKE_CXX)
66+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS)
67+QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
68+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
69+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
70+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
71+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
72+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
73+QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
74+QMAKE_CXXFLAGS_RTTI_ON = -frtti
75+QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
76+QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
77+QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
78+QMAKE_CXXFLAGS_CXX11 = -std=c++0x
79+QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS
80+
81+QMAKE_INCDIR =
82+
83+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
84+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
85+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
86+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
87+
88+QMAKE_LINK = $(OE_QMAKE_LINK)
89+QMAKE_LINK_C = $(OE_QMAKE_LINK)
90+QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS)
91+QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
92+QMAKE_LFLAGS_EXCEPTIONS_OFF =
93+QMAKE_LFLAGS_RELEASE = -Wl,-s
94+QMAKE_LFLAGS_DEBUG =
95+QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
96+QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
97+QMAKE_LFLAGS_DLL = -shared
98+QMAKE_LFLAGS_CXX11 =
99+QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
100+QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold
101+QMAKE_LINK_OBJECT_MAX = 10
102+QMAKE_LINK_OBJECT_SCRIPT = object_script
103+QMAKE_PREFIX_SHLIB =
104+QMAKE_EXTENSION_SHLIB = dll
105+QMAKE_PREFIX_STATICLIB = lib
106+QMAKE_EXTENSION_STATICLIB = a
107+QMAKE_LIB_EXTENSIONS = a dll.a
108+
109+QMAKE_LIBS =
110+QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
111+QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32
112+QMAKE_LIBS_NETWORK = -lws2_32
113+QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32
114+QMAKE_LIBS_OPENGL_ES2 = -llibEGL -llibGLESv2 -lgdi32 -luser32
115+QMAKE_LIBS_OPENGL_ES2_DEBUG = -llibEGLd -llibGLESv2d -lgdi32 -luser32
116+QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
117+QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
118+
119+QMAKE_IDL = midl
120+QMAKE_LIB = $(OE_QMAKE_AR) -ru
121+QMAKE_RC = $(RC)
122+
123+QMAKE_STRIP = $${OE_QMAKE_STRIP}
124+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
125+QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
126+QMAKE_NM = $${CROSS_COMPILE}nm -P
127+
128+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
129+load(qt_config)
130diff --git a/mkspecs/win32-g++-oe/qplatformdefs.h b/mkspecs/win32-g++-oe/qplatformdefs.h
131new file mode 100644
132index 0000000..9d63527
133--- /dev/null
134+++ b/mkspecs/win32-g++-oe/qplatformdefs.h
135@@ -0,0 +1,42 @@
136+/****************************************************************************
137+**
138+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
139+** Contact: http://www.qt-project.org/legal
140+**
141+** This file is part of the qmake spec of the Qt Toolkit.
142+**
143+** $QT_BEGIN_LICENSE:LGPL$
144+** Commercial License Usage
145+** Licensees holding valid commercial Qt licenses may use this file in
146+** accordance with the commercial license agreement provided with the
147+** Software or, alternatively, in accordance with the terms contained in
148+** a written agreement between you and Digia. For licensing terms and
149+** conditions see http://qt.digia.com/licensing. For further information
150+** use the contact form at http://qt.digia.com/contact-us.
151+**
152+** GNU Lesser General Public License Usage
153+** Alternatively, this file may be used under the terms of the GNU Lesser
154+** General Public License version 2.1 as published by the Free Software
155+** Foundation and appearing in the file LICENSE.LGPL included in the
156+** packaging of this file. Please review the following information to
157+** ensure the GNU Lesser General Public License version 2.1 requirements
158+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
159+**
160+** In addition, as a special exception, Digia gives you certain additional
161+** rights. These rights are described in the Digia Qt LGPL Exception
162+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
163+**
164+** GNU General Public License Usage
165+** Alternatively, this file may be used under the terms of the GNU
166+** General Public License version 3.0 as published by the Free Software
167+** Foundation and appearing in the file LICENSE.GPL included in the
168+** packaging of this file. Please review the following information to
169+** ensure the GNU General Public License version 3.0 requirements will be
170+** met: http://www.gnu.org/copyleft/gpl.html.
171+**
172+**
173+** $QT_END_LICENSE$
174+**
175+****************************************************************************/
176+
177+#include "../win32-g++/qplatformdefs.h"
178--
1791.9.1
180
diff --git a/recipes-qt/qt5/qtbase/0001-QMake-Add-option-to-set-qt.conf-file.patch b/recipes-qt/qt5/qtbase/0001-QMake-Add-option-to-set-qt.conf-file.patch
new file mode 100644
index 00000000..ce266572
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0001-QMake-Add-option-to-set-qt.conf-file.patch
@@ -0,0 +1,114 @@
1From dbf1c2eb9f4e1feb24a58699b7b550016802e386 Mon Sep 17 00:00:00 2001
2From: David Schulz <david.schulz@theqtcompany.com>
3Date: Mon, 13 Jul 2015 11:21:22 +0200
4Subject: [PATCH] QMake: Add option to set qt.conf file.
5
6Upstream-Status: Integrated in dev (dbf1c2eb9f4e1feb24a58699b7b550016802e386),
7 will be in 5.7 branch
8
9Change-Id: Ie5db11892ccf2d357773a4db6a0464bf27be9a26
10Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
11---
12 mkspecs/features/configure.prf | 4 +++-
13 qmake/library/qmakeevaluator.cpp | 2 ++
14 qmake/library/qmakeglobals.cpp | 7 ++++++-
15 qmake/library/qmakeglobals.h | 1 +
16 qmake/option.cpp | 3 +++
17 5 files changed, 15 insertions(+), 2 deletions(-)
18
19diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
20index 6b37a04..92c288c 100644
21--- a/mkspecs/features/configure.prf
22+++ b/mkspecs/features/configure.prf
23@@ -67,7 +67,9 @@ defineTest(qtCompileTest) {
24
25 mkpath($$test_out_dir)|error("Aborting.")
26
27- qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") {
28+ !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF
29+
30+ qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) $$qtconfarg -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") {
31 qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") {
32 log("yes$$escape_expand(\\n)")
33 msg = "test $$1 succeeded"
34diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
35index cfb95b9..31be44e 100644
36--- a/qmake/library/qmakeevaluator.cpp
37+++ b/qmake/library/qmakeevaluator.cpp
38@@ -992,6 +992,8 @@ void QMakeEvaluator::loadDefaults()
39 vars[ProKey("QMAKE_QMAKE")] << ProString(m_option->qmake_abslocation);
40 if (!m_option->qmake_args.isEmpty())
41 vars[ProKey("QMAKE_ARGS")] = ProStringList(m_option->qmake_args);
42+ if (!m_option->qtconf.isEmpty())
43+ vars[ProKey("QMAKE_QTCONF")] = ProString(m_option->qtconf);
44 vars[ProKey("QMAKE_HOST.cpu_count")] = ProString(QString::number(idealThreadCount()));
45 #if defined(Q_OS_WIN32)
46 vars[ProKey("QMAKE_HOST.os")] << ProString("Windows");
47diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp
48index 55ce404..4f1a9d2 100644
49--- a/qmake/library/qmakeglobals.cpp
50+++ b/qmake/library/qmakeglobals.cpp
51@@ -128,7 +128,7 @@ QString QMakeGlobals::cleanSpec(QMakeCmdLineParserState &state, const QString &s
52 QMakeGlobals::ArgumentReturn QMakeGlobals::addCommandLineArguments(
53 QMakeCmdLineParserState &state, QStringList &args, int *pos)
54 {
55- enum { ArgNone, ArgConfig, ArgSpec, ArgXSpec, ArgTmpl, ArgTmplPfx, ArgCache } argState = ArgNone;
56+ enum { ArgNone, ArgConfig, ArgSpec, ArgXSpec, ArgTmpl, ArgTmplPfx, ArgCache, ArgQtConf } argState = ArgNone;
57 for (; *pos < args.count(); (*pos)++) {
58 QString arg = args.at(*pos);
59 switch (argState) {
60@@ -153,6 +153,9 @@ QMakeGlobals::ArgumentReturn QMakeGlobals::addCommandLineArguments(
61 case ArgCache:
62 cachefile = args[*pos] = QDir::cleanPath(QDir(state.pwd).absoluteFilePath(arg));
63 break;
64+ case ArgQtConf:
65+ qtconf = args[*pos] = QDir::cleanPath(QDir(state.pwd).absoluteFilePath(arg));
66+ break;
67 default:
68 if (arg.startsWith(QLatin1Char('-'))) {
69 if (arg == QLatin1String("-after"))
70@@ -163,6 +166,8 @@ QMakeGlobals::ArgumentReturn QMakeGlobals::addCommandLineArguments(
71 do_cache = false;
72 else if (arg == QLatin1String("-cache"))
73 argState = ArgCache;
74+ else if (arg == QLatin1String("-qtconf"))
75+ argState = ArgQtConf;
76 else if (arg == QLatin1String("-platform") || arg == QLatin1String("-spec"))
77 argState = ArgSpec;
78 else if (arg == QLatin1String("-xplatform") || arg == QLatin1String("-xspec"))
79diff --git a/qmake/library/qmakeglobals.h b/qmake/library/qmakeglobals.h
80index de46ebb..87fc9d4 100644
81--- a/qmake/library/qmakeglobals.h
82+++ b/qmake/library/qmakeglobals.h
83@@ -112,6 +112,7 @@ public:
84 QString qmake_abslocation;
85 QStringList qmake_args;
86
87+ QString qtconf;
88 QString qmakespec, xqmakespec;
89 QString user_template, user_template_prefix;
90 QString precmds, postcmds;
91diff --git a/qmake/option.cpp b/qmake/option.cpp
92index da59616..1d1aece 100644
93--- a/qmake/option.cpp
94+++ b/qmake/option.cpp
95@@ -172,6 +172,7 @@ bool usage(const char *a0)
96 " -set <prop> <value> Set persistent property\n"
97 " -unset <prop> Unset persistent property\n"
98 " -query <prop> Query persistent property. Show all if <prop> is empty.\n"
99+ " -qtconf file Use file instead of looking for qt.conf\n"
100 " -cache file Use file as cache [makefile mode only]\n"
101 " -spec spec Use spec as QMAKESPEC [makefile mode only]\n"
102 " -nocache Don't use a cache file [makefile mode only]\n"
103@@ -642,6 +643,8 @@ qmakeAddCacheClear(qmakeCacheClearFunc func, void **data)
104
105 QString qmake_libraryInfoFile()
106 {
107+ if (!Option::globals->qtconf.isEmpty())
108+ return Option::globals->qtconf;
109 if (!Option::globals->qmake_abslocation.isEmpty())
110 return QDir(QFileInfo(Option::globals->qmake_abslocation).absolutePath()).filePath("qt.conf");
111 return QString();
112--
1132.5.0.windows.1
114
diff --git a/recipes-qt/qt5/qtbase/0002-configure-Separate-host-and-build-platform.patch b/recipes-qt/qt5/qtbase/0002-configure-Separate-host-and-build-platform.patch
new file mode 100644
index 00000000..4ff1643f
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0002-configure-Separate-host-and-build-platform.patch
@@ -0,0 +1,643 @@
1From 89784751fa045f0bf86bc87b9be4dd5b19e1227d Mon Sep 17 00:00:00 2001
2From: David Schulz <david.schulz@theqtcompany.com>
3Date: Mon, 12 Oct 2015 09:55:30 +0200
4Subject: [PATCH] configure: Separate host and build platform.
5
6Upstream-Status: Integrated in dev (c23a086e4fc9d7d7b2420de26cbc5adcbd23596e),
7 will be in 5.7 branch
8
9This separation makes it possible to make a
10canadian cross build of Qt on a linux build machine.
11The canadian cross build requires an external Qt that
12runs on the build system.
13
14Change-Id: Ifd83a4c6376d3299647e74bb349a3452a6f433fc
15---
16 config.tests/unix/arch.test | 6 +-
17 config.tests/unix/compile.test | 6 +-
18 configure | 163 ++++++++++++++++++++++++++++++++-----
19 mkspecs/features/device_config.prf | 15 ++--
20 mkspecs/features/qt_functions.prf | 2 +-
21 mkspecs/features/qt_tool.prf | 57 ++++++++-----
22 qmake/qmake-aux.pro | 11 +++
23 qmake/qmake-docs.pro | 2 -
24 qtbase.pro | 15 +---
25 9 files changed, 210 insertions(+), 67 deletions(-)
26 create mode 100644 qmake/qmake-aux.pro
27 delete mode 100644 qmake/qmake-docs.pro
28
29diff --git a/config.tests/unix/arch.test b/config.tests/unix/arch.test
30index c50bd8b..cfb47de 100755
31--- a/config.tests/unix/arch.test
32+++ b/config.tests/unix/arch.test
33@@ -6,7 +6,9 @@ SRCDIR=$3
34 OUTDIR=$4
35 RESULTFILE=$5
36 TARGET=$6
37-shift 6
38+QMAKE=$7
39+QTCONF=$8
40+shift 8
41
42 if [ "$TARGET" = "host" ]; then
43 VARPREFIX="CFG_HOST"
44@@ -44,7 +46,7 @@ done
45 test -d "$OUTDIR/config.tests/arch" || mkdir -p "$OUTDIR/config.tests/arch"
46 cd "$OUTDIR/config.tests/arch"
47 [ -f Makefile ] && $MAKE distclean >/dev/null 2>&1
48-OUTDIR=$OUTDIR "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "LIBS+=$LFLAGS" "QMAKE_CXXFLAGS+=$CXXFLAGS" "INCLUDEPATH+=$INCLUDEPATH" "CONFIG-=app_bundle" "$SRCDIR/config.tests/arch/arch$PROSUFFIX.pro" >/dev/null 2>&1 || echo "qmake is broken" >&2
49+OUTDIR=$OUTDIR "$QMAKE" -qtconf "$QTCONF" -nocache -spec "$QMKSPEC" "LIBS+=$LFLAGS" "QMAKE_CXXFLAGS+=$CXXFLAGS" "INCLUDEPATH+=$INCLUDEPATH" "CONFIG-=app_bundle" "$SRCDIR/config.tests/arch/arch$PROSUFFIX.pro" >/dev/null 2>&1 || echo "qmake is broken" >&2
50
51
52 ARCH=""
53diff --git a/config.tests/unix/compile.test b/config.tests/unix/compile.test
54index 103321e..57769a3 100755
55--- a/config.tests/unix/compile.test
56+++ b/config.tests/unix/compile.test
57@@ -10,7 +10,9 @@ OUTDIR=$5
58 TEST=$6
59 EXE=`basename "$6"`
60 DESCRIPTION=$7
61-shift 7
62+QMAKE=$8
63+QTCONF=$9
64+shift 9
65 LFLAGS="$SYSROOT_FLAG"
66 INCLUDEPATH=""
67 CXXFLAGS="$SYSROOT_FLAG"
68@@ -67,7 +69,7 @@ test -r Makefile && $MAKE distclean >/dev/null 2>&1
69 # Make sure output from possible previous tests is gone
70 rm -f "$EXE" "${EXE}.exe"
71
72-set -- "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_release app_bundle lib_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
73+set -- "$QMAKE" -qtconf "$QTCONF" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "CONFIG+=android_app" "CONFIG-=debug_and_release app_bundle lib_bundle" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile"
74 if [ "$VERBOSE" = "yes" ]; then
75 OUTDIR=$OUTDIR "$@" && $MAKE && SUCCESS=yes
76 else
77diff --git a/configure b/configure
78index 52c1be2..6b89d34 100755
79--- a/configure
80+++ b/configure
81@@ -104,9 +104,11 @@ QT_CONFIG=
82 SUPPORTED=
83 QMAKE_VARS_FILE=.qmake.vars
84 DEVICE_VARS_FILE=.device.vars
85+HOST_VARS_FILE=.host.vars
86
87 :> "$QMAKE_VARS_FILE"
88 :> "$DEVICE_VARS_FILE"
89+:> "$HOST_VARS_FILE"
90
91 #-------------------------------------------------------------------------------
92 # utility functions
93@@ -195,15 +197,15 @@ expandQMakeConf()
94 echo "WARNING: Unable to find file $conf_file" >&2
95 continue
96 fi
97- expandQMakeConf "$conf_file"
98+ expandQMakeConf "$conf_file" "$2"
99 ;;
100 *load\(device_config\)*)
101- conf_file="$DEVICE_VARS_FILE"
102+ conf_file="$2"
103 if [ ! -f "$conf_file" ]; then
104 echo "WARNING: Unable to find file $conf_file" >&2
105 continue
106 fi
107- expandQMakeConf "$conf_file"
108+ expandQMakeConf "$conf_file" "$2"
109 ;;
110 *)
111 echo "$line"
112@@ -336,7 +338,7 @@ macSDKify()
113 getQMakeConf()
114 {
115 if [ -z "$specvals" ]; then
116- specvals=`expandQMakeConf "$QMAKESPEC/qmake.conf" | extractQMakeVariables "host_build"`
117+ specvals=`expandQMakeConf "$QMAKESPEC/qmake.conf" "$HOST_VARS_FILE" | extractQMakeVariables "host_build"`
118 if [ "$BUILD_ON_MAC" = "yes" ]; then specvals=$(macSDKify "$specvals"); fi
119 fi
120 getSingleQMakeVariable "$1" "$specvals"
121@@ -345,7 +347,7 @@ getQMakeConf()
122 getXQMakeConf()
123 {
124 if [ -z "$xspecvals" ]; then
125- xspecvals=`expandQMakeConf "$XQMAKESPEC/qmake.conf" | extractQMakeVariables "!host_build"`
126+ xspecvals=`expandQMakeConf "$XQMAKESPEC/qmake.conf" "$DEVICE_VARS_FILE" | extractQMakeVariables "!host_build"`
127 if [ "$XPLATFORM_MAC" = "yes" ]; then xspecvals=$(macSDKify "$xspecvals"); fi
128 fi
129 getSingleQMakeVariable "$1" "$xspecvals"
130@@ -478,6 +480,23 @@ resolveDeviceMkspec()
131 }
132
133 #-------------------------------------------------------------------------------
134+# Host options
135+#-------------------------------------------------------------------------------
136+HostVar()
137+{
138+ case "$1" in
139+ set)
140+ eq="="
141+ ;;
142+ *)
143+ echo >&2 "BUG: wrong command to QMakeVar: $1"
144+ ;;
145+ esac
146+
147+ echo "$2" "$eq" "$3" >> "$HOST_VARS_FILE"
148+}
149+
150+#-------------------------------------------------------------------------------
151 # operating system detection
152 #-------------------------------------------------------------------------------
153
154@@ -502,12 +521,10 @@ BUILD_ON_MAC=no
155 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
156 BUILD_ON_MAC=yes
157 fi
158-BUILD_ON_MSYS=no
159 HOST_DIRLIST_SEP=":"
160 DEV_NULL=/dev/null
161 if [ "$OSTYPE" = "msys" ]; then
162 HOST_DIRLIST_SEP=";"
163- BUILD_ON_MSYS=yes
164 DEV_NULL=/tmp/empty-file
165 echo "" > $DEV_NULL
166 relpath=`(cd "$relpath"; pwd -W)`
167@@ -922,6 +939,7 @@ while [ "$#" -gt 0 ]; do
168 -hostlibdir| \
169 -extprefix| \
170 -sysroot| \
171+ -external-hostbindir| \
172 -depths| \
173 -make| \
174 -nomake| \
175@@ -930,6 +948,7 @@ while [ "$#" -gt 0 ]; do
176 -xplatform| \
177 -device| \
178 -device-option| \
179+ -host-option| \
180 -sdk| \
181 -arch| \
182 -host-arch| \
183@@ -1249,6 +1268,10 @@ while [ "$#" -gt 0 ]; do
184 gcc-sysroot)
185 CFG_GCC_SYSROOT="$VAL"
186 ;;
187+ external-hostbindir)
188+ CFG_HOST_QT_TOOLS_PATH="$VAL"
189+ HostVar set HOST_QT_TOOLS "$VAL"
190+ ;;
191 bindir)
192 QT_INSTALL_BINS="$VAL"
193 ;;
194@@ -1423,6 +1446,11 @@ while [ "$#" -gt 0 ]; do
195 DEV_VAL=`echo $VAL | cut -d '=' -f 2-`
196 DeviceVar set $DEV_VAR "$DEV_VAL"
197 ;;
198+ host-option)
199+ HOST_VAR=`echo $VAL | cut -d '=' -f 1`
200+ HOST_VAL=`echo $VAL | cut -d '=' -f 2-`
201+ HostVar set $HOST_VAR "$HOST_VAL"
202+ ;;
203 qpa)
204 QT_QPA_DEFAULT_PLATFORM="$VAL"
205 ;;
206@@ -2671,6 +2699,8 @@ Additional options:
207 -device-option <key=value> ... Add device specific options for the device mkspec
208 (experimental)
209
210+ -host-option <key=value> ..... Add host specific options for the host mkspec
211+
212 * -no-separate-debug-info . Do not store debug information in a separate file.
213 -separate-debug-info .... Strip debug information into a separate file.
214
215@@ -2702,6 +2732,9 @@ Additional options:
216 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
217 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
218
219+ -external-hostbindir <path> .. Path to Qt tools built for this machine. Use this when -platform
220+ does not match the current system, i.e., to make a Canadian Cross Build.
221+
222 -no-feature-<feature> Do not compile in <feature>.
223 -feature-<feature> .. Compile in <feature>. The available features
224 are described in src/corelib/global/qfeatures.txt
225@@ -3301,7 +3301,7 @@ if [ -d "$XPLATFORM" ]; then
226 else
227 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
228 fi
229-if [ "$PLATFORM" != "$XPLATFORM" ]; then
230+if [ "$PLATFORM" != "$XPLATFORM" ] || [ -n "$CFG_HOST_QT_TOOLS_PATH" ]; then
231 QT_CROSS_COMPILE=yes
232 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
233 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
234@@ -4039,7 +4072,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
235 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
236 done
237 fi
238- if [ "$BUILD_ON_MSYS" = "yes" ]; then
239+ case `basename "$PLATFORM"` in
240+ win32-g++*)
241 EXTRA_CFLAGS="-DUNICODE"
242 EXTRA_CXXFLAGS="-DUNICODE"
243 EXTRA_OBJS="qfilesystemengine_win.o \
244@@ -4058,7 +4092,8 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
245 \"\$(SOURCE_PATH)/tools/shared/windows/registry.cpp\""
246 EXTRA_LFLAGS="-static -s -lole32 -luuid -ladvapi32 -lkernel32"
247 EXEEXT=".exe"
248- else
249+ ;;
250+ *)
251 EXTRA_OBJS="qfilesystemengine_unix.o \
252 qfilesystemiterator_unix.o \
253 qfsfileengine_unix.o \
254@@ -4068,7 +4103,8 @@ \"\$(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp\"
255 \"\$(SOURCE_PATH)/src/corelib/tools/qlocale_unix.cpp\""
256 EXEEXT=
257 [ "$QT_CROSS_COMPILE" = "yes" ] && EXEEXT=-target
258- fi
259+ ;;
260+ esac
261 if [ "$BUILD_ON_MAC" = "yes" ]; then
262 echo "COCOA_LFLAGS =-framework Foundation -framework CoreServices" >>"$mkfile"
263 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
264@@ -4089,6 +4125,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
265 if [ '!' -z "$D_FLAGS" ]; then
266 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
267 fi
268+
269 echo >>"$mkfile"
270 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
271 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
272@@ -4158,7 +4195,81 @@ QTCONFFILE="$outpath/bin/qt.conf"
273 cat > "$QTCONFFILE" <<EOF
274 [EffectivePaths]
275 Prefix=..
276+[Paths]
277+Prefix=$QT_EXT_PREFIX
278+TargetSpec=$XQMAKESPEC
279+HostSpec=$QMAKESPEC
280+EOF
281+if [ -n "$CFG_SYSROOT" ]; then
282+ cat >> "$QTCONFFILE" <<EOF
283+Sysroot=$CFG_SYSROOT
284+EOF
285+fi
286+if [ -n "$QT_INSTALL_BINS" ]; then
287+cat >> "$QTCONFFILE" <<EOF
288+Binaries=$QT_INSTALL_BINS
289+EOF
290+fi
291+if [ -n "$QT_INSTALL_LIBS" ]; then
292+cat >> "$QTCONFFILE" <<EOF
293+Libraries=$QT_INSTALL_LIBS
294 EOF
295+fi
296+if [ -n "$QT_INSTALL_DOCS" ]; then
297+cat >> "$QTCONFFILE" <<EOF
298+Documentation=$QT_INSTALL_DOCS
299+EOF
300+fi
301+if [ -n "$QT_INSTALL_HEADERS" ]; then
302+cat >> "$QTCONFFILE" <<EOF
303+Headers=$QT_INSTALL_HEADERS
304+EOF
305+fi
306+if [ -n "$QT_INSTALL_PLUGINS" ]; then
307+cat >> "$QTCONFFILE" <<EOF
308+Plugins=$QT_INSTALL_PLUGINS
309+EOF
310+fi
311+if [ -n "$QT_INSTALL_IMPORTS" ]; then
312+cat >> "$QTCONFFILE" <<EOF
313+Imports=$QT_INSTALL_IMPORTS
314+EOF
315+fi
316+if [ -n "$QT_INSTALL_SETTINGS" ]; then
317+cat >> "$QTCONFFILE" <<EOF
318+Settings=$QT_INSTALL_SETTINGS
319+EOF
320+fi
321+if [ -n "$QT_INSTALL_ARCHDATA" ]; then
322+cat >> "$QTCONFFILE" <<EOF
323+ArchData=$QT_INSTALL_ARCHDATA
324+EOF
325+fi
326+if [ -n "$QT_INSTALL_DATA" ]; then
327+cat >> "$QTCONFFILE" <<EOF
328+Data=$QT_INSTALL_DATA
329+EOF
330+fi
331+if [ -n "$QT_HOST_PREFIX" ]; then
332+cat >> "$QTCONFFILE" <<EOF
333+HostPrefix=$QT_HOST_PREFIX
334+EOF
335+fi
336+if [ -n "$QT_HOST_BINS" ]; then
337+cat >> "$QTCONFFILE" <<EOF
338+HostBinaries=$QT_HOST_BINS
339+EOF
340+fi
341+if [ -n "$QT_HOST_LIBS" ]; then
342+cat >> "$QTCONFFILE" <<EOF
343+HostLibraries=$QT_HOST_LIBS
344+EOF
345+fi
346+if [ -n "$QT_HOST_DATA" ]; then
347+cat >> "$QTCONFFILE" <<EOF
348+HostData=$QT_HOST_DATA
349+EOF
350+fi
351 if [ x"$relpath" != x"$outpath" ]; then
352 cat >> "$QTCONFFILE" <<EOF
353 [EffectiveSourcePaths]
354@@ -4166,6 +4277,9 @@ Prefix=$relpath
355 EOF
356 fi
357
358+[ -z "$CFG_HOST_QT_TOOLS_PATH" ] && CFG_HOST_QT_TOOLS_PATH="$outpath/bin"
359+CFG_QMAKE_PATH="$CFG_HOST_QT_TOOLS_PATH/qmake"
360+
361 #-------------------------------------------------------------------------------
362 # write out device config before we run the test.
363 #-------------------------------------------------------------------------------
364@@ -4178,9 +4292,20 @@ else
365 fi
366
367 #-------------------------------------------------------------------------------
368+# write out host config.
369+#-------------------------------------------------------------------------------
370+HOST_VARS_OUTFILE="$outpath/mkspecs/qhost.pri"
371+if cmp -s "$HOST_VARS_FILE" "$HOST_VARS_OUTFILE"; then
372+ rm -f "$HOST_VARS_FILE"
373+else
374+ mv -f $HOST_VARS_FILE "$HOST_VARS_OUTFILE"
375+ HOST_VARS_FILE="$HOST_VARS_OUTFILE"
376+fi
377+
378+#-------------------------------------------------------------------------------
379 # Verify makespec
380 #-------------------------------------------------------------------------------
381-QMAKE_OUTPUT=`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "QT=" $DEV_NULL 2>&1`
382+QMAKE_OUTPUT=`"$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" -E -nocache -spec "$XQMAKESPEC" "QT=" $DEV_NULL 2>&1`
383 if [ $? != "0" ]; then
384 echo "Failed to process makespec for platform '$XPLATFORM'"
385 if [ "$OPT_VERBOSE" = "yes" ]; then
386@@ -4196,7 +4321,7 @@ fi
387 #-------------------------------------------------------------------------------
388 if [ -z "$PKG_CONFIG" ]; then
389 # See if PKG_CONFIG is set in the mkspec:
390- PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" $DEV_NULL 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
391+ PKG_CONFIG="`"$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" $DEV_NULL 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
392 [ -n "$PKG_CONFIG" ] && [ "$OPT_VERBOSE" = "yes" ] && echo "Found pkg-config from mkspec: $PKG_CONFIG"
393 fi
394 if [ -z "$PKG_CONFIG" ]; then
395@@ -4271,7 +4396,7 @@ compileTest()
396 if [ "$CFG_SHARED" = "no" ]; then
397 test_config="$QMAKE_CONFIG static"
398 fi
399- "$unixtests/compile.test" "$XQMAKESPEC" "$test_config" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS "$@"
400+ "$unixtests/compile.test" "$XQMAKESPEC" "$test_config" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" "$CFG_QMAKE_PATH" "$QTCONFFILE" $I_FLAGS $D_FLAGS $L_FLAGS "$@"
401 }
402
403 compileTestWithPkgConfig()
404@@ -4320,7 +4445,7 @@ compileTestWithPkgConfig()
405
406 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
407 OUTFILE=$outpath/arch.result
408-"$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "target" $I_FLAGS $D_FLAGS $L_FLAGS
409+"$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "target" $CFG_QMAKE_PATH $QTCONFFILE $I_FLAGS $D_FLAGS $L_FLAGS
410 if [ $? -eq 0 ]; then
411 eval `cat "$OUTFILE"`
412 else
413@@ -4333,7 +4458,7 @@ rm -f "$OUTFILE" 2>/dev/null
414
415 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
416 # Do the same test again, using the host compiler
417- SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "host" $I_FLAGS $D_FLAGS $L_FLAGS
418+ SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "host" $CFG_QMAKE_PATH $QTCONFFILE $I_FLAGS $D_FLAGS $L_FLAGS
419 if [ $? -eq 0 ]; then
420 eval `cat "$OUTFILE"`
421 else
422@@ -4549,7 +4674,7 @@ fi
423
424 # detect mips_dsp support
425 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
426- if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
427+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" "$CFG_QMAKE_PATH" "$QTCONFFILE" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
428 CFG_MIPS_DSP=yes
429 else
430 CFG_MIPS_DSP=no
431@@ -4560,7 +4685,7 @@ fi
432
433 # detect mips_dspr2 support
434 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
435- if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
436+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" "$CFG_QMAKE_PATH" "$QTCONFFILE" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
437 CFG_MIPS_DSPR2=yes
438 else
439 CFG_MIPS_DSPR2=no
440@@ -7447,7 +7572,7 @@ rm -f "$QMAKE_VARS_FILE" 2>/dev/null
441 cd ..
442 fi
443
444- "$outpath/bin/qmake" "$relpathMangled"
445+ "$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" "$relpathMangled"
446
447 ) || exit
448
449diff --git a/mkspecs/features/device_config.prf b/mkspecs/features/device_config.prf
450index e0383ef..9281d3e 100644
451--- a/mkspecs/features/device_config.prf
452+++ b/mkspecs/features/device_config.prf
453@@ -1,16 +1,15 @@
454 # This file is loaded by some qmakespecs to get early configuration data.
455
456-# Load generated qdevice.pri
457-DEVICE_PRI = $$[QT_HOST_DATA/get]/mkspecs/qdevice.pri
458+host_build: \
459+ PRI_FILE_NAME = qhost.pri
460+else: \
461+ PRI_FILE_NAME = qdevice.pri
462+DEVICE_PRI = $$[QT_HOST_DATA/get]/mkspecs/$$PRI_FILE_NAME
463 exists($$DEVICE_PRI):include($$DEVICE_PRI)
464 unset(DEVICE_PRI)
465
466-host_build {
467- CROSS_COMPILE =
468-} else: isEmpty(CROSS_COMPILE) {
469- #this variable can be persisted via qmake -set CROSS_COMPILE /foo
470- CROSS_COMPILE = $$[CROSS_COMPILE]
471-}
472+# this variable can be persisted via qmake -set CROSS_COMPILE /foo
473+!host_build:isEmpty(CROSS_COMPILE): CROSS_COMPILE = $$[CROSS_COMPILE]
474
475 # Provide a function to be used by mkspecs
476 defineTest(deviceSanityCheckCompiler) {
477diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
478index 00f4bdf..6615995 100644
479--- a/mkspecs/features/qt_functions.prf
480+++ b/mkspecs/features/qt_functions.prf
481@@ -57,7 +57,7 @@ defineTest(qtHaveModule) {
482 defineTest(qtPrepareTool) {
483 cmd = $$eval(QT_TOOL.$${2}.binary)
484 isEmpty(cmd) {
485- cmd = $$[QT_HOST_BINS]/$$2
486+ cmd = $$[QT_HOST_BINS/get]/$$2
487 exists($${cmd}.pl) {
488 cmd = perl -w $$system_path($${cmd}.pl)
489 } else: contains(QMAKE_HOST.os, Windows) {
490diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
491index 3f0301a..add121d 100644
492--- a/mkspecs/features/qt_tool.prf
493+++ b/mkspecs/features/qt_tool.prf
494@@ -17,39 +17,52 @@ DEFINES *= QT_USE_QSTRINGBUILDER
495 # If we are doing a prefix build, create a "module" pri which enables
496 # qtPrepareTool() to work with the non-installed build.
497 # Non-bootstrapped tools always need this because of the environment setup.
498-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
499+!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)) {
500 isEmpty(MODULE):MODULE = $$TARGET
501
502- !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
503-
504 load(qt_build_paths)
505-
506- load(resolve_target)
507+ load(device_config)
508
509 TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri
510
511- vars = binary depends
512- !isEmpty(QT_TOOL_ENV) {
513- vars += envvars
514- module_var_names =
515- module_var_sets =
516- for(var, QT_TOOL_ENV) {
517- vars += env.$${var}.name env.$${var}.value
518- module_var_names += QT_TOOL.$${MODULE}.env.$${var}
519- module_var_sets += \
520- "QT_TOOL.$${MODULE}.env.$${var}.name = $$val_escape($${var}.name)" \
521- "QT_TOOL.$${MODULE}.env.$${var}.value = $$val_escape($${var}.value)"
522+ vars = binary
523+
524+ isEmpty(HOST_QT_TOOLS) {
525+ load(resolve_target)
526+
527+ vars += depends
528+ depends_var = "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")"
529+
530+ !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
531+
532+ !isEmpty(QT_TOOL_ENV) {
533+ vars += envvars
534+ module_var_names =
535+ module_var_sets =
536+ for(var, QT_TOOL_ENV) {
537+ vars += env.$${var}.name env.$${var}.value
538+ module_var_names += QT_TOOL.$${MODULE}.env.$${var}
539+ module_var_sets += \
540+ "QT_TOOL.$${MODULE}.env.$${var}.name = $$val_escape($${var}.name)" \
541+ "QT_TOOL.$${MODULE}.env.$${var}.value = $$val_escape($${var}.value)"
542+ }
543+ module_envvars = \
544+ "QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
545+ $$module_var_sets
546+ } else {
547+ module_envvars =
548 }
549- module_envvars = \
550- "QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
551- $$module_var_sets
552+
553+ bin = $$system_path($$QMAKE_RESOLVED_TARGET)
554 } else {
555- module_envvars =
556+ bin = $${HOST_QT_TOOLS}/$${TARGET}
557+ equals(QMAKE_HOST.os, Windows): bin = $${bin}.exe
558+ bin = $$system_path($$bin)
559 }
560- bin = $$system_path($$QMAKE_RESOLVED_TARGET)
561+
562 TOOL_PRI_CONT = \
563 "QT_TOOL.$${MODULE}.binary = $$val_escape(bin)" \
564- "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
565+ $$depends_var \
566 $$module_envvars
567 write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.")
568
569diff --git a/qmake/qmake-aux.pro b/qmake/qmake-aux.pro
570new file mode 100644
571index 0000000..33a7fbf
572--- /dev/null
573+++ b/qmake/qmake-aux.pro
574@@ -0,0 +1,11 @@
575+option(host_build)
576+TEMPLATE = aux
577+
578+# qmake documentation
579+QMAKE_DOCS = $$PWD/doc/qmake.qdocconf
580+
581+# qmake binary
582+win32: EXTENSION = .exe
583+qmake.path = $$[QT_HOST_BINS]
584+qmake.files = $$OUT_PWD/../bin/qmake$$EXTENSION
585+INSTALLS += qmake
586diff --git a/qmake/qmake-docs.pro b/qmake/qmake-docs.pro
587deleted file mode 100644
588index 3123f7c..0000000
589--- a/qmake/qmake-docs.pro
590+++ /dev/null
591@@ -1,2 +0,0 @@
592-TEMPLATE = aux
593-QMAKE_DOCS = $$PWD/doc/qmake.qdocconf
594diff --git a/qtbase.pro b/qtbase.pro
595index 98ca86a..11cff9e 100644
596--- a/qtbase.pro
597+++ b/qtbase.pro
598@@ -4,7 +4,7 @@
599
600 load(qt_parts)
601
602-SUBDIRS += qmake/qmake-docs.pro
603+SUBDIRS += qmake/qmake-aux.pro
604
605 cross_compile: CONFIG += nostrip
606
607@@ -28,6 +28,7 @@ QMAKE_DISTCLEAN += \
608 config.tests/.qmake.cache \
609 mkspecs/qconfig.pri \
610 mkspecs/qdevice.pri \
611+ mkspecs/qhost.pri \
612 mkspecs/qmodule.pri \
613 src/corelib/global/qconfig.h \
614 src/corelib/global/qconfig.cpp \
615@@ -37,15 +38,6 @@ CONFIG -= qt
616
617 ### installations ####
618
619-#qmake
620-qmake.path = $$[QT_HOST_BINS]
621-equals(QMAKE_HOST.os, Windows) {
622- qmake.files = $$OUT_PWD/bin/qmake.exe
623-} else {
624- qmake.files = $$OUT_PWD/bin/qmake
625-}
626-INSTALLS += qmake
627-
628 #licheck
629 licheck.path = $$[QT_HOST_BINS]
630 licheck.files = $$PWD/bin/$$QT_LICHECK
631@@ -175,7 +167,8 @@ QMAKE_DISTCLEAN += \
632 #mkspecs
633 mkspecs.path = $$[QT_HOST_DATA]/mkspecs
634 mkspecs.files = \
635- $$OUT_PWD/mkspecs/qconfig.pri $$OUT_PWD/mkspecs/qmodule.pri $$OUT_PWD/mkspecs/qdevice.pri $$OUT_PWD/mkspecs/qfeatures.pri \
636+ $$OUT_PWD/mkspecs/qconfig.pri $$OUT_PWD/mkspecs/qmodule.pri $$OUT_PWD/mkspecs/qfeatures.pri \
637+ $$OUT_PWD/mkspecs/qdevice.pri $$OUT_PWD/mkspecs/qhost.pri \
638 $$files($$PWD/mkspecs/*)
639 mkspecs.files -= $$PWD/mkspecs/modules $$PWD/mkspecs/modules-inst
640 INSTALLS += mkspecs
641--
6422.5.0.windows.1
643
diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
deleted file mode 100644
index 01832386..00000000
--- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From f902b73eda6d459a3669fd78a3c8908ae13e705b Mon Sep 17 00:00:00 2001
2From: Holger Freyther <zecke@selfish.org>
3Date: Wed, 26 Sep 2012 17:22:30 +0200
4Subject: [PATCH 2/9] qlibraryinfo: allow to set qt.conf from the outside using
5 the environment
6
7Allow to set a qt.conf from the outside using the environment. This allows
8to inject new prefixes and other paths into qmake. This is needed when using
9the same qmake binary to build qt/x11 and qt/embedded
10
11Upstream-Status: Inappropriate [embedded specific]
12 again very OE specific to read everything from environment (reusing the same
13 qmake from sstate and replacing all configured paths in it with qt.conf from
14 environment).
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 src/corelib/global/qlibraryinfo.cpp | 5 ++++-
19 1 file changed, 4 insertions(+), 1 deletion(-)
20
21diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
22index 0cfcc4e..c3b5c2d 100644
23--- a/src/corelib/global/qlibraryinfo.cpp
24+++ b/src/corelib/global/qlibraryinfo.cpp
25@@ -157,7 +157,10 @@ void QLibrarySettings::load()
26
27 QSettings *QLibraryInfoPrivate::findConfiguration()
28 {
29- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf");
30+ QByteArray config = getenv("QT_CONF_PATH");
31+ QString qtconfig = QFile::decodeName(config);
32+ if(!QFile::exists(qtconfig))
33+ qtconfig = QStringLiteral(":/qt/etc/qt.conf");
34 if (QFile::exists(qtconfig))
35 return new QSettings(qtconfig, QSettings::IniFormat);
36 #ifdef QT_BUILD_QMAKE
37--
382.6.2
39
diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
deleted file mode 100644
index ea152790..00000000
--- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
+++ /dev/null
@@ -1,229 +0,0 @@
1From 175d86ddb36117c0ca2ff47ae42693980dbfa098 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 3/9] 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>
25Signed-off-by: Jonathan Liu <net147@gmail.com>
26
27Conflicts:
28 configure
29---
30 configure | 14 ++++++++++++++
31 mkspecs/features/qt_functions.prf | 6 +++++-
32 mkspecs/features/qt_tool.prf | 5 +++--
33 qtbase.pro | 13 ++++++++++---
34 src/corelib/Qt5CoreConfigExtras.cmake.in | 6 +++---
35 src/dbus/Qt5DBusConfigExtras.cmake.in | 4 ++--
36 src/widgets/Qt5WidgetsConfigExtras.cmake.in | 2 +-
37 7 files changed, 38 insertions(+), 12 deletions(-)
38
39diff --git a/configure b/configure
40index 9897fe6..aa89d30 100755
41--- a/configure
42+++ b/configure
43@@ -808,6 +808,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@@ -927,6 +928,7 @@ while [ "$#" -gt 0 ]; do
52 -testsdir| \
53 -hostdatadir| \
54 -hostbindir| \
55+ -external-hostbindir| \
56 -hostlibdir| \
57 -extprefix| \
58 -sysroot| \
59@@ -1157,6 +1159,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@@ -2419,6 +2424,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@@ -3158,6 +3167,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
92diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
93index 6616aa4..3d40bf9 100644
94--- a/mkspecs/features/qt_functions.prf
95+++ b/mkspecs/features/qt_functions.prf
96@@ -57,7 +57,11 @@ defineTest(qtHaveModule) {
97 defineTest(qtPrepareTool) {
98 cmd = $$eval(QT_TOOL.$${2}.binary)
99 isEmpty(cmd) {
100- cmd = $$[QT_HOST_BINS]/$$2
101+ QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
102+ isEmpty(QT_EXTERNAL_HOST_BINS): \
103+ cmd = $$[QT_HOST_BINS]/$$2
104+ else: \
105+ cmd = $$[QT_EXTERNAL_HOST_BINS]/$$2
106 exists($${cmd}.pl) {
107 cmd = perl -w $$system_path($${cmd}.pl)
108 } else: contains(QMAKE_HOST.os, Windows) {
109diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
110index 3f0301a..7dc66de 100644
111--- a/mkspecs/features/qt_tool.prf
112+++ b/mkspecs/features/qt_tool.prf
113@@ -14,10 +14,11 @@ load(qt_app)
114 CONFIG += console
115 DEFINES *= QT_USE_QSTRINGBUILDER
116
117+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
118+
119 # If we are doing a prefix build, create a "module" pri which enables
120 # qtPrepareTool() to work with the non-installed build.
121-# Non-bootstrapped tools always need this because of the environment setup.
122-!build_pass:if(!host_build|!force_bootstrap|force_independent) {
123+!build_pass:if(!host_build|!force_bootstrap|force_independent):isEmpty(QT_EXTERNAL_HOST_BINS) {
124 isEmpty(MODULE):MODULE = $$TARGET
125
126 !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
127diff --git a/qtbase.pro b/qtbase.pro
128index 24d0f52..d3d79b3 100644
129--- a/qtbase.pro
130+++ b/qtbase.pro
131@@ -37,12 +37,16 @@ CONFIG -= qt
132
133 ### installations ####
134
135+QT_EXTERNAL_HOST_BINS = $$[QT_EXTERNAL_HOST_BINS]
136+
137 #qmake
138 qmake.path = $$[QT_HOST_BINS]
139+qmake.files = $$OUT_PWD/bin/qmake
140+!isEmpty(QT_EXTERNAL_HOST_BINS) {
141+ qmake.files = $$[QT_EXTERNAL_HOST_BINS]/qmake
142+}
143 equals(QMAKE_HOST.os, Windows) {
144- qmake.files = $$OUT_PWD/bin/qmake.exe
145-} else {
146- qmake.files = $$OUT_PWD/bin/qmake
147+ qmake.files = $${qmake.files}.exe
148 }
149 INSTALLS += qmake
150
151@@ -54,6 +58,9 @@ licheck.files = $$PWD/bin/$$QT_LICHECK
152 #syncqt
153 syncqt.path = $$[QT_HOST_BINS]
154 syncqt.files = $$PWD/bin/syncqt.pl
155+!isEmpty(QT_EXTERNAL_HOST_BINS) {
156+ syncqt.files = $$[QT_EXTERNAL_HOST_BINS]/syncqt.pl
157+}
158 INSTALLS += syncqt
159
160 # If we are doing a prefix build, create a "module" pri which enables
161diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
162index 65fd1f9..457518b 100644
163--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
164+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
165@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qmake)
166 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
167 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
168 !!ELSE
169- set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
170+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake$$CMAKE_BIN_SUFFIX\")
171 !!ENDIF
172 _qt5_Core_check_file_exists(${imported_location})
173
174@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::moc)
175 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
176 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
177 !!ELSE
178- set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
179+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/moc$$CMAKE_BIN_SUFFIX\")
180 !!ENDIF
181 _qt5_Core_check_file_exists(${imported_location})
182
183@@ -37,7 +37,7 @@ if (NOT TARGET Qt5::rcc)
184 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
185 set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
186 !!ELSE
187- set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
188+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/rcc$$CMAKE_BIN_SUFFIX\")
189 !!ENDIF
190 _qt5_Core_check_file_exists(${imported_location})
191
192diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
193index 1d94715..301af8f 100644
194--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
195+++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
196@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::qdbuscpp2xml)
197 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
198 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
199 !!ELSE
200- set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
201+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
202 !!ENDIF
203 _qt5_DBus_check_file_exists(${imported_location})
204
205@@ -20,7 +20,7 @@ if (NOT TARGET Qt5::qdbusxml2cpp)
206 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
207 set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
208 !!ELSE
209- set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
210+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
211 !!ENDIF
212 _qt5_DBus_check_file_exists(${imported_location})
213
214diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
215index 99d87e2..5621dc0 100644
216--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
217+++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
218@@ -5,7 +5,7 @@ if (NOT TARGET Qt5::uic)
219 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
220 set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
221 !!ELSE
222- set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
223+ set(imported_location \"${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/uic$$CMAKE_BIN_SUFFIX\")
224 !!ENDIF
225 _qt5_Widgets_check_file_exists(${imported_location})
226
227--
2282.6.2
229
diff --git a/recipes-qt/qt5/qtbase/0010-Add-external-hostbindir-option-for-native-sdk.patch b/recipes-qt/qt5/qtbase/0010-Add-external-hostbindir-option-for-native-sdk.patch
deleted file mode 100644
index 4d654a44..00000000
--- a/recipes-qt/qt5/qtbase/0010-Add-external-hostbindir-option-for-native-sdk.patch
+++ /dev/null
@@ -1,134 +0,0 @@
1From 38ecbe7300925d440fa3d7c58e40ed5a53b2d73a 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 9/9] Add -external-hostbindir option for native(sdk)
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
23Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37
24Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
25Signed-off-by: Simon Busch <morphis@gravedo.de>
26Signed-off-by: Jonathan Liu <net147@gmail.com>
27Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
28
29Conflicts:
30 tools/configure/configureapp.cpp
31---
32 configure | 1 +
33 qmake/property.cpp | 1 +
34 src/corelib/global/qlibraryinfo.cpp | 3 ++-
35 src/corelib/global/qlibraryinfo.h | 1 +
36 tools/configure/configureapp.cpp | 11 +++++++++++
37 5 files changed, 16 insertions(+), 1 deletion(-)
38
39diff --git a/configure b/configure
40index 6edfffd..313d921 100755
41--- a/configure
42+++ b/configure
43@@ -3895,6 +3895,7 @@ addConfStr "$CFG_SYSROOT"
44 addConfStr "$QT_REL_HOST_BINS"
45 addConfStr "$QT_REL_HOST_LIBS"
46 addConfStr "$QT_REL_HOST_DATA"
47+addConfStr "$QT_EXTERNAL_HOST_BINS"
48 addConfStr "$shortxspec"
49 addConfStr "$shortspec"
50
51diff --git a/qmake/property.cpp b/qmake/property.cpp
52index 817ae95..c69539f 100644
53--- a/qmake/property.cpp
54+++ b/qmake/property.cpp
55@@ -68,6 +68,7 @@ static const struct {
56 { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true },
57 { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true },
58 { "QT_HOST_LIBS", QLibraryInfo::HostLibrariesPath, true },
59+ { "QT_EXTERNAL_HOST_BINS", QLibraryInfo::ExternalHostBinariesPath, true },
60 { "QMAKE_SPEC", QLibraryInfo::HostSpecPath, true },
61 { "QMAKE_XSPEC", QLibraryInfo::TargetSpecPath, true },
62 };
63diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
64index c3b5c2d..1381658 100644
65--- a/src/corelib/global/qlibraryinfo.cpp
66+++ b/src/corelib/global/qlibraryinfo.cpp
67@@ -373,7 +373,7 @@ QLibraryInfo::isDebugBuild()
68 */
69
70 static const struct {
71- char key[19], value[13];
72+ char key[21], value[13];
73 } qtConfEntries[] = {
74 { "Prefix", "." },
75 { "Documentation", "doc" }, // should be ${Data}/doc
76@@ -398,6 +398,7 @@ static const struct {
77 { "HostBinaries", "bin" },
78 { "HostLibraries", "lib" },
79 { "HostData", "." },
80+ { "ExternalHostBinaries", "" },
81 { "TargetSpec", "" },
82 { "HostSpec", "" },
83 { "HostPrefix", "" },
84diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
85index 1ad7637..5a8b127 100644
86--- a/src/corelib/global/qlibraryinfo.h
87+++ b/src/corelib/global/qlibraryinfo.h
88@@ -81,6 +81,7 @@ public:
89 HostBinariesPath,
90 HostLibrariesPath,
91 HostDataPath,
92+ ExternalHostBinariesPath,
93 TargetSpecPath,
94 HostSpecPath,
95 HostPrefixPath,
96diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
97index 6c3217b..980c578 100644
98--- a/tools/configure/configureapp.cpp
99+++ b/tools/configure/configureapp.cpp
100@@ -1243,6 +1243,13 @@ void Configure::parseCmdLine()
101 dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
102 }
103
104+ else if (configCmdLine.at(i) == "-external-hostbindir") {
105+ ++i;
106+ if (i == argCount)
107+ break;
108+ dictionary[ "QT_EXTERNAL_HOST_BINS" ] = configCmdLine.at(i);
109+ }
110+
111 else if (configCmdLine.at(i) == "-make-tool") {
112 ++i;
113 if (i == argCount)
114@@ -4198,6 +4205,9 @@ void Configure::generateQConfigCpp()
115
116 if (dictionary["QT_REL_HOST_DATA"].isEmpty())
117 dictionary["QT_REL_HOST_DATA"] = haveHpx ? "." : dictionary["QT_REL_INSTALL_ARCHDATA"];
118+
119+ if (dictionary["QT_EXTERNAL_HOST_BINS"].isEmpty())
120+ dictionary["QT_EXTERNAL_HOST_BINS"] = haveHpx ? "bin" : dictionary["QT_REL_INSTALL_BINS"];
121
122 confStringOff = 0;
123 addConfStr(0, dictionary["QT_REL_INSTALL_DOCS"]);
124@@ -4217,6 +4227,7 @@ void Configure::generateQConfigCpp()
125 addConfStr(1, dictionary["QT_REL_HOST_BINS"]);
126 addConfStr(1, dictionary["QT_REL_HOST_LIBS"]);
127 addConfStr(1, dictionary["QT_REL_HOST_DATA"]);
128+ addConfStr(1, dictionary["QT_EXTERNAL_HOST_BINS"]);
129 addConfStr(1, targSpec);
130 addConfStr(1, hostSpec);
131
132--
1332.6.2
134
diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb
index 7ee5f562..13a30c1c 100644
--- a/recipes-qt/qt5/qtbase_git.bb
+++ b/recipes-qt/qt5/qtbase_git.bb
@@ -13,13 +13,13 @@ LIC_FILES_CHKSUM = " \
13# common for qtbase-native, qtbase-nativesdk and qtbase 13# common for qtbase-native, qtbase-nativesdk and qtbase
14SRC_URI += "\ 14SRC_URI += "\
15 file://0001-Add-linux-oe-g-platform.patch \ 15 file://0001-Add-linux-oe-g-platform.patch \
16 file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ 16 file://0001-Add-win32-g-oe-mkspec-that-uses-the-OE_-environment.patch \
17 file://0003-Add-external-hostbindir-option.patch \ 17 file://0001-QMake-Add-option-to-set-qt.conf-file.patch \
18 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \ 18 file://0004-qt_module-Fix-pkgconfig-and-libtool-replacements.patch \
19 file://0005-configure-bump-path-length-from-256-to-512-character.patch \ 19 file://0005-configure-bump-path-length-from-256-to-512-character.patch \
20 file://0006-QOpenGLPaintDevice-sub-area-support.patch \ 20 file://0006-QOpenGLPaintDevice-sub-area-support.patch \
21 file://0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch \ 21 file://0007-linux-oe-g-Invert-conditional-for-defining-QT_SOCKLE.patch \
22 file://0008-configure-paths-for-target-qmake-properly.patch \ 22 file://0002-configure-Separate-host-and-build-platform.patch \
23" 23"
24 24
25DEPENDS += "qtbase-native" 25DEPENDS += "qtbase-native"
@@ -139,20 +139,19 @@ QT_CONFIG_FLAGS += " \
139 ${EXTRA_OECONF} \ 139 ${EXTRA_OECONF} \
140" 140"
141 141
142do_generate_qt_config_file_append() { 142OE_QMAKE_PATH_HOST_BINS = "${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}"
143 cat >> ${QT_CONF_PATH} <<EOF
144 143
144generate_qt_config_file_effective_paths() {
145 cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF
145[EffectivePaths] 146[EffectivePaths]
146Prefix=.. 147Prefix=${B}
147EOF 148EOF
148} 149}
149 150
151OE_QMAKE_PATH_HOST_DATA = "${STAGING_LIBDIR}${QT_DIR_NAME}"
150# qtbase is exception, we need to use mkspecs from ${S} 152# qtbase is exception, we need to use mkspecs from ${S}
151QMAKE_MKSPEC_PATH = "${B}" 153QMAKE_MKSPEC_PATH_TARGET = "${B}"
152 154QMAKE_MKSPEC_PATH = "${S}"
153# another exception is that we need to run bin/qmake, because EffectivePaths are relative to qmake location
154OE_QMAKE_QMAKE_ORIG = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake"
155OE_QMAKE_QMAKE = "bin/qmake"
156 155
157# qtbase is exception, configure script is using our get(X)QEvalMakeConf and setBootstrapEvalVariable functions to read it from shell 156# qtbase is exception, configure script is using our get(X)QEvalMakeConf and setBootstrapEvalVariable functions to read it from shell
158export OE_QMAKE_COMPILER 157export OE_QMAKE_COMPILER
@@ -166,17 +165,9 @@ export OE_QMAKE_AR
166export OE_QMAKE_STRIP 165export OE_QMAKE_STRIP
167 166
168do_configure() { 167do_configure() {
169 # we need symlink in path relative to source, because
170 # EffectivePaths:Prefix is relative to qmake location
171 if [ ! -e ${B}/bin/qmake ]; then
172 mkdir -p ${B}/bin
173 ln -sf ${OE_QMAKE_QMAKE_ORIG} ${B}/bin/qmake
174 fi
175
176 ${S}/configure -v \ 168 ${S}/configure -v \
177 -opensource -confirm-license \ 169 -opensource -confirm-license \
178 -sysroot ${STAGING_DIR_TARGET} \ 170 -sysroot ${STAGING_DIR_TARGET} \
179 -no-gcc-sysroot \
180 -prefix ${OE_QMAKE_PATH_PREFIX} \ 171 -prefix ${OE_QMAKE_PATH_PREFIX} \
181 -bindir ${OE_QMAKE_PATH_BINS} \ 172 -bindir ${OE_QMAKE_PATH_BINS} \
182 -libdir ${OE_QMAKE_PATH_LIBS} \ 173 -libdir ${OE_QMAKE_PATH_LIBS} \
@@ -195,7 +186,7 @@ do_configure() {
195 -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \ 186 -hostbindir ${OE_QMAKE_PATH_HOST_BINS} \
196 -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \ 187 -external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \
197 -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \ 188 -hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \
198 -platform ${OE_QMAKESPEC} \ 189 -platform ${OE_QMAKE_PLATFORM_NATIVE} \
199 -xplatform linux-oe-g++ \ 190 -xplatform linux-oe-g++ \
200 ${QT_CONFIG_FLAGS} 191 ${QT_CONFIG_FLAGS}
201 192
@@ -203,8 +194,6 @@ do_configure() {
203} 194}
204 195
205do_install_append() { 196do_install_append() {
206 install -m 0755 ${B}/bin/qmake-target ${D}/${bindir}${QT_DIR_NAME}/qmake
207
208 ### Fix up the binaries to the right location 197 ### Fix up the binaries to the right location
209 ### TODO: FIX 198 ### TODO: FIX
210 # install fonts manually if they are missing 199 # install fonts manually if they are missing
@@ -222,9 +211,9 @@ do_install_append() {
222 rm -rf ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/macx-ios-clang 211 rm -rf ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/macx-ios-clang
223 212
224 # Replace host paths with qmake built-in properties 213 # Replace host paths with qmake built-in properties
225# sed -i -e 's| ${STAGING_DIR_NATIVE}${prefix_native}| $$[QT_HOST_PREFIX]|g' \ 214 sed -i -e 's|${STAGING_DIR_NATIVE}${prefix_native}|$$[QT_HOST_PREFIX/get]|g' \
226# -e 's| ${STAGING_DIR_HOST}| $$[QT_SYSROOT]|g' \ 215 -e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' \
227# ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/qconfig.pri 216 ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/*.pri
228} 217}
229 218
230PACKAGES =. " \ 219PACKAGES =. " \
diff --git a/recipes-qt/qt5/qtdeclarative_git.bb b/recipes-qt/qt5/qtdeclarative_git.bb
index de71c39b..a78d62f4 100644
--- a/recipes-qt/qt5/qtdeclarative_git.bb
+++ b/recipes-qt/qt5/qtdeclarative_git.bb
@@ -31,6 +31,11 @@ do_configure_prepend() {
31 echo "QT_TOOL.syncqt.binary = \"${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/syncqt\"" > ${B}/.qmake.cache 31 echo "QT_TOOL.syncqt.binary = \"${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/syncqt\"" > ${B}/.qmake.cache
32} 32}
33 33
34do_install_append_class-nativesdk() {
35 # qml files not needed in nativesdk
36 rm -rf ${D}${OE_QMAKE_PATH_QML}
37}
38
34EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtxmlpatterns', 'CONFIG+=OE_QTXMLPATTERNS_ENABLED', '', d)}" 39EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtxmlpatterns', 'CONFIG+=OE_QTXMLPATTERNS_ENABLED', '', d)}"
35 40
36SRCREV = "1064d5100f4d00af5f56b87331251f97d78f8b87" 41SRCREV = "1064d5100f4d00af5f56b87331251f97d78f8b87"
diff --git a/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch b/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch
index e743a352..aecf7b8b 100644
--- a/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch
+++ b/recipes-qt/qt5/qttools/0001-Allow-to-build-only-lrelease-lupdate-lconvert.patch
@@ -116,9 +116,11 @@ index 387d54f..56b7d0c 100644
116-qtHaveModule(dbus): SUBDIRS += qdbus 116-qtHaveModule(dbus): SUBDIRS += qdbus
117+!linguistonly:qtHaveModule(dbus): SUBDIRS += qdbus 117+!linguistonly:qtHaveModule(dbus): SUBDIRS += qdbus
118 118
119 win32|winrt:SUBDIRS += windeployqt 119-win32|winrt:SUBDIRS += windeployqt
120 winrt:SUBDIRS += winrtrunner 120-winrt:SUBDIRS += winrtrunner
121-qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag 121-qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag
122+!linguistonly:win32|winrt:SUBDIRS += windeployqt
123+!linguistonly:winrt:SUBDIRS += winrtrunner
122+!linguistonly:qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag 124+!linguistonly:qtHaveModule(gui):!android:!ios:!qnx:!wince*:!winrt*:SUBDIRS += qtdiag
123 125
124 qtNomakeTools( \ 126 qtNomakeTools( \
diff --git a/recipes-qt/qt5/qtwayland-native_git.bb b/recipes-qt/qt5/qtwayland-native_git.bb
index ba07591a..afe737a9 100644
--- a/recipes-qt/qt5/qtwayland-native_git.bb
+++ b/recipes-qt/qt5/qtwayland-native_git.bb
@@ -18,7 +18,7 @@ SRC_URI += " \
18" 18"
19 19
20do_configure() { 20do_configure() {
21 ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S}/src/qtwaylandscanner 21 ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_QTCONF} -r ${S}/src/qtwaylandscanner
22} 22}
23 23
24do_install() { 24do_install() {
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index 76609322..b5d0b586 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -81,7 +81,7 @@ do_configure() {
81 81
82 # qmake can't find the OE_QMAKE_* variables on it's own so directly passing them as 82 # qmake can't find the OE_QMAKE_* variables on it's own so directly passing them as
83 # arguments here 83 # arguments here
84 ${OE_QMAKE_QMAKE} -r ${EXTRA_QMAKEVARS_PRE} QTWEBENGINE_ROOT="${S}" \ 84 ${OE_QMAKE_QMAKE} ${OE_QMAKE_QTCONF} -r ${EXTRA_QMAKEVARS_PRE} QTWEBENGINE_ROOT="${S}" \
85 QMAKE_CXX="${OE_QMAKE_CXX}" QMAKE_CC="${OE_QMAKE_CC}" \ 85 QMAKE_CXX="${OE_QMAKE_CXX}" QMAKE_CC="${OE_QMAKE_CC}" \
86 QMAKE_LINK="${OE_QMAKE_LINK}" \ 86 QMAKE_LINK="${OE_QMAKE_LINK}" \
87 QMAKE_CFLAGS="${OE_QMAKE_CFLAGS}" \ 87 QMAKE_CFLAGS="${OE_QMAKE_CFLAGS}" \