diff options
author | David Schulz <david.schulz@theqtcompany.com> | 2015-10-01 16:21:45 +0200 |
---|---|---|
committer | David Schulz <david.schulz@theqtcompany.com> | 2016-02-03 14:43:28 +0000 |
commit | ff7fd3b1a9b39d217928f3e1d8f16341b9fd6fec (patch) | |
tree | 021fe5da9af026394eadc2c7727ff2a20b93a447 | |
parent | c7cd9cb4661dd1623368d39e66c716f2222d357b (diff) | |
download | meta-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>
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() { | |||
17 | do_install_class-native() { | 17 | do_install_class-native() { |
18 | qmake5_base_native_do_install | 18 | qmake5_base_native_do_install |
19 | } | 19 | } |
20 | |||
21 | do_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 |
2 | OE_QMAKE_PLATFORM_NATIVE = "linux-oe-g++" | 2 | OE_QMAKE_PLATFORM_NATIVE = "linux-oe-g++" |
3 | OE_QMAKE_PLATFORM = "linux-oe-g++" | 3 | OE_QMAKE_PLATFORM = "linux-oe-g++" |
4 | OE_QMAKE_PLATFORM_NATIVE_mingw32 = "win32-g++-oe" | ||
5 | OE_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 |
6 | OE_QMAKE_DEBUG_OUTPUT ?= "" | 8 | OE_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 | ||
33 | OE_QMAKESPEC = "${QMAKE_MKSPEC_PATH_NATIVE}/mkspecs/${OE_QMAKE_PLATFORM_NATIVE}" | ||
34 | OE_XQMAKESPEC = "${QMAKE_MKSPEC_PATH}/mkspecs/${OE_QMAKE_PLATFORM}" | ||
35 | OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" | 35 | OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" |
36 | OE_QMAKE_COMPILER = "${CC}" | 36 | OE_QMAKE_COMPILER = "${CC}" |
37 | OE_QMAKE_CC = "${CC}" | 37 | OE_QMAKE_CC = "${CC}" |
@@ -43,14 +43,18 @@ OE_QMAKE_LDFLAGS = "${LDFLAGS}" | |||
43 | OE_QMAKE_AR = "${AR}" | 43 | OE_QMAKE_AR = "${AR}" |
44 | OE_QMAKE_STRIP = "echo" | 44 | OE_QMAKE_STRIP = "echo" |
45 | OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner" | 45 | OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner" |
46 | 46 | OE_QMAKE_QTCONF_PATH = "${WORKDIR}/qt.conf" | |
47 | # this one needs to be exported, because qmake reads it from shell env | 47 | OE_QMAKE_QTCONF = "-qtconf ${OE_QMAKE_QTCONF_PATH}" |
48 | export QT_CONF_PATH = "${WORKDIR}/qt.conf" | ||
49 | 48 | ||
50 | inherit qmake5_paths | 49 | inherit qmake5_paths |
51 | 50 | ||
52 | do_generate_qt_config_file() { | 51 | do_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 | |||
56 | generate_qt_config_file_paths() { | ||
57 | cat > ${OE_QMAKE_QTCONF_PATH} <<EOF | ||
54 | [Paths] | 58 | [Paths] |
55 | Prefix = ${OE_QMAKE_PATH_PREFIX} | 59 | Prefix = ${OE_QMAKE_PATH_PREFIX} |
56 | Headers = ${OE_QMAKE_PATH_HEADERS} | 60 | Headers = ${OE_QMAKE_PATH_HEADERS} |
@@ -70,12 +74,21 @@ Tests = ${OE_QMAKE_PATH_TESTS} | |||
70 | HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} | 74 | HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} |
71 | HostData = ${OE_QMAKE_PATH_HOST_DATA} | 75 | HostData = ${OE_QMAKE_PATH_HOST_DATA} |
72 | HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} | 76 | HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} |
73 | HostSpec = ${OE_QMAKESPEC} | 77 | HostSpec = ${OE_QMAKE_PLATFORM_NATIVE} |
74 | TartgetSpec = ${OE_XQMAKESPEC} | 78 | TargetSpec = ${OE_QMAKE_PLATFORM} |
75 | ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} | 79 | ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} |
76 | Sysroot = ${STAGING_DIR_TARGET} | 80 | Sysroot = ${STAGING_DIR_TARGET} |
77 | EOF | 81 | EOF |
78 | } | 82 | } |
83 | |||
84 | generate_qt_config_file_effective_paths() { | ||
85 | cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF | ||
86 | [EffectivePaths] | ||
87 | HostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} | ||
88 | HostData = ${OE_QMAKE_PATH_HOST_DATA} | ||
89 | HostPrefix = ${STAGING_DIR_NATIVE}${prefix_native} | ||
90 | EOF | ||
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 | ||
161 | qmake5_base_native_do_install() { | 174 | qmake5_base_native_do_install() { |
162 | oe_runmake install INSTALL_ROOT=${D} | 175 | oe_runmake install INSTALL_ROOT=${D} |
163 | } | 176 | } |
164 | 177 | ||
165 | qmake5_base_nativesdk_do_install() { | 178 | qmake5_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 | ||
172 | qmake5_base_do_install() { | 193 | qmake5_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 @@ | |||
1 | DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]" | 1 | DESCRIPTION = "SDK version of Qt/[X11|Mac|Embedded]" |
2 | DEPENDS = "nativesdk-zlib nativesdk-dbus qtbase-native" | 2 | DEPENDS = "nativesdk-zlib nativesdk-dbus qtbase-native" |
3 | DEPENDS_remove_mingw32 = "nativesdk-dbus" | ||
3 | SECTION = "libs" | 4 | SECTION = "libs" |
4 | HOMEPAGE = "http://qt-project.org" | 5 | HOMEPAGE = "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 |
24 | SRC_URI += "\ | 25 | SRC_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 |
35 | SRC_URI += " \ | 36 | SRC_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 | ||
55 | FILES_${PN}-tools-staticdev = " \ | 57 | FILES_${PN}-tools-staticdev = " \ |
56 | ${libdir}/libQt5Bootstrap.a \ | 58 | ${OE_QMAKE_PATH_LIBS}/*.a \ |
57 | " | 59 | " |
58 | 60 | ||
59 | FILES_${PN}-tools-dbg = " \ | 61 | FILES_${PN}-tools-dbg = " \ |
@@ -88,7 +90,7 @@ OE_QMAKE_PATH_HOST_DATA = "${libdir}${QT_DIR_NAME}" | |||
88 | OE_QMAKE_PATH_HOST_LIBS = "${libdir}" | 90 | OE_QMAKE_PATH_HOST_LIBS = "${libdir}" |
89 | 91 | ||
90 | do_generate_qt_config_file() { | 92 | do_generate_qt_config_file() { |
91 | cat > ${QT_CONF_PATH} <<EOF | 93 | cat > ${OE_QMAKE_QTCONF_PATH} <<EOF |
92 | [Paths] | 94 | [Paths] |
93 | Prefix = ${OE_QMAKE_PATH_PREFIX} | 95 | Prefix = ${OE_QMAKE_PATH_PREFIX} |
94 | Headers = ${OE_QMAKE_PATH_HEADERS} | 96 | Headers = ${OE_QMAKE_PATH_HEADERS} |
@@ -108,18 +110,18 @@ Tests = ${OE_QMAKE_PATH_TESTS} | |||
108 | HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} | 110 | HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} |
109 | HostData = ${OE_QMAKE_PATH_HOST_DATA} | 111 | HostData = ${OE_QMAKE_PATH_HOST_DATA} |
110 | HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} | 112 | HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} |
111 | HostSpec = ${OE_QMAKESPEC} | 113 | HostSpec = ${OE_QMAKE_PLATFORM_NATIVE} |
112 | TartgetSpec = ${OE_XQMAKESPEC} | 114 | TargetSpec = ${OE_QMAKE_PLATFORM} |
113 | ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} | 115 | ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} |
114 | Sysroot = | 116 | Sysroot = |
115 | EOF | 117 | EOF |
116 | } | 118 | } |
117 | 119 | ||
118 | do_generate_qt_config_file_append() { | 120 | do_generate_qt_config_file_append() { |
119 | cat >> ${QT_CONF_PATH} <<EOF | 121 | cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF |
120 | 122 | ||
121 | [EffectivePaths] | 123 | [EffectivePaths] |
122 | Prefix=.. | 124 | Prefix=${B} |
123 | EOF | 125 | EOF |
124 | } | 126 | } |
125 | 127 | ||
@@ -137,21 +139,10 @@ export OE_QMAKE_LDFLAGS | |||
137 | export OE_QMAKE_AR | 139 | export OE_QMAKE_AR |
138 | export OE_QMAKE_STRIP | 140 | export OE_QMAKE_STRIP |
139 | 141 | ||
140 | # another exception is that we need to run bin/qmake, because EffectivePaths are relative to qmake location | ||
141 | OE_QMAKE_QMAKE_ORIG = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" | ||
142 | OE_QMAKE_QMAKE = "bin/qmake" | ||
143 | |||
144 | do_configure() { | 142 | do_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.* |
205 | EXTRA_QTLIB ?= "" | 197 | EXTRA_QTLIB = "Core" |
198 | |||
199 | PRESERVE_PATTERN = "libQt5%s.so*" | ||
200 | PRESERVE_PATTERN_mingw32 = "libQt5%s.a" | ||
206 | 201 | ||
207 | python __anonymous () { | 202 | python __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 | ||
259 | fakeroot do_generate_qt_environment_file_mingw32() { | ||
260 | } | ||
261 | |||
271 | addtask generate_qt_environment_file after do_install before do_package | 262 | addtask generate_qt_environment_file after do_install before do_package |
272 | 263 | ||
273 | SRCREV = "f7f4dde80e13ff1c05a9399297ffb746ab505e62" | 264 | SRCREV = "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 |
18 | SRC_URI += "\ | 18 | SRC_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 |
30 | SRC_URI += " \ | 29 | SRC_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 | ||
35 | CLEANBROKEN = "1" | 34 | CLEANBROKEN = "1" |
36 | 35 | ||
37 | QT_CONF_PATH = "${B}/qt.conf" | ||
38 | |||
39 | do_generate_qt_config_file() { | 36 | do_generate_qt_config_file() { |
40 | : | 37 | : |
41 | } | 38 | } |
42 | 39 | ||
43 | EXTRA_OECONF = " \ | 40 | EXTRA_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 @@ | |||
1 | From 5363b4d6d1f3c5683267ec3e190b85eca964eef8 Mon Sep 17 00:00:00 2001 | ||
2 | From: David Schulz <david.schulz@theqtcompany.com> | ||
3 | Date: Fri, 3 Jul 2015 16:06:59 +0200 | ||
4 | Subject: [PATCH] Add win32-g++-oe mkspec that uses the OE_ environment. | ||
5 | |||
6 | Upstream-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 | |||
15 | diff --git a/mkspecs/win32-g++-oe/qmake.conf b/mkspecs/win32-g++-oe/qmake.conf | ||
16 | new file mode 100644 | ||
17 | index 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) | ||
130 | diff --git a/mkspecs/win32-g++-oe/qplatformdefs.h b/mkspecs/win32-g++-oe/qplatformdefs.h | ||
131 | new file mode 100644 | ||
132 | index 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 | -- | ||
179 | 1.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 @@ | |||
1 | From dbf1c2eb9f4e1feb24a58699b7b550016802e386 Mon Sep 17 00:00:00 2001 | ||
2 | From: David Schulz <david.schulz@theqtcompany.com> | ||
3 | Date: Mon, 13 Jul 2015 11:21:22 +0200 | ||
4 | Subject: [PATCH] QMake: Add option to set qt.conf file. | ||
5 | |||
6 | Upstream-Status: Integrated in dev (dbf1c2eb9f4e1feb24a58699b7b550016802e386), | ||
7 | will be in 5.7 branch | ||
8 | |||
9 | Change-Id: Ie5db11892ccf2d357773a4db6a0464bf27be9a26 | ||
10 | Reviewed-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 | |||
19 | diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf | ||
20 | index 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" | ||
34 | diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp | ||
35 | index 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"); | ||
47 | diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp | ||
48 | index 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")) | ||
79 | diff --git a/qmake/library/qmakeglobals.h b/qmake/library/qmakeglobals.h | ||
80 | index 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; | ||
91 | diff --git a/qmake/option.cpp b/qmake/option.cpp | ||
92 | index 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 | -- | ||
113 | 2.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 @@ | |||
1 | From 89784751fa045f0bf86bc87b9be4dd5b19e1227d Mon Sep 17 00:00:00 2001 | ||
2 | From: David Schulz <david.schulz@theqtcompany.com> | ||
3 | Date: Mon, 12 Oct 2015 09:55:30 +0200 | ||
4 | Subject: [PATCH] configure: Separate host and build platform. | ||
5 | |||
6 | Upstream-Status: Integrated in dev (c23a086e4fc9d7d7b2420de26cbc5adcbd23596e), | ||
7 | will be in 5.7 branch | ||
8 | |||
9 | This separation makes it possible to make a | ||
10 | canadian cross build of Qt on a linux build machine. | ||
11 | The canadian cross build requires an external Qt that | ||
12 | runs on the build system. | ||
13 | |||
14 | Change-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 | |||
29 | diff --git a/config.tests/unix/arch.test b/config.tests/unix/arch.test | ||
30 | index 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="" | ||
53 | diff --git a/config.tests/unix/compile.test b/config.tests/unix/compile.test | ||
54 | index 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 | ||
77 | diff --git a/configure b/configure | ||
78 | index 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 | |||
449 | diff --git a/mkspecs/features/device_config.prf b/mkspecs/features/device_config.prf | ||
450 | index 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) { | ||
477 | diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf | ||
478 | index 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) { | ||
490 | diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf | ||
491 | index 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 | |||
569 | diff --git a/qmake/qmake-aux.pro b/qmake/qmake-aux.pro | ||
570 | new file mode 100644 | ||
571 | index 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 | ||
586 | diff --git a/qmake/qmake-docs.pro b/qmake/qmake-docs.pro | ||
587 | deleted file mode 100644 | ||
588 | index 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 | ||
594 | diff --git a/qtbase.pro b/qtbase.pro | ||
595 | index 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 | -- | ||
642 | 2.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 @@ | |||
1 | From f902b73eda6d459a3669fd78a3c8908ae13e705b Mon Sep 17 00:00:00 2001 | ||
2 | From: Holger Freyther <zecke@selfish.org> | ||
3 | Date: Wed, 26 Sep 2012 17:22:30 +0200 | ||
4 | Subject: [PATCH 2/9] qlibraryinfo: allow to set qt.conf from the outside using | ||
5 | the environment | ||
6 | |||
7 | Allow to set a qt.conf from the outside using the environment. This allows | ||
8 | to inject new prefixes and other paths into qmake. This is needed when using | ||
9 | the same qmake binary to build qt/x11 and qt/embedded | ||
10 | |||
11 | Upstream-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 | |||
16 | Signed-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 | |||
21 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
22 | index 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 | -- | ||
38 | 2.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 @@ | |||
1 | From 175d86ddb36117c0ca2ff47ae42693980dbfa098 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | ||
4 | Subject: [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 | |||
18 | Upstream-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 | |||
23 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
24 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
25 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
26 | |||
27 | Conflicts: | ||
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 | |||
39 | diff --git a/configure b/configure | ||
40 | index 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 | ||
92 | diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf | ||
93 | index 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) { | ||
109 | diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf | ||
110 | index 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) | ||
127 | diff --git a/qtbase.pro b/qtbase.pro | ||
128 | index 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 | ||
161 | diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in | ||
162 | index 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 | |||
192 | diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in | ||
193 | index 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 | |||
214 | diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in | ||
215 | index 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 | -- | ||
228 | 2.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 @@ | |||
1 | From 38ecbe7300925d440fa3d7c58e40ed5a53b2d73a Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Sat, 6 Apr 2013 13:15:07 +0200 | ||
4 | Subject: [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 | |||
18 | Upstream-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 | |||
23 | Change-Id: I4f6e634bf0b2cb96065ee5c38b9cd8a224c3bd37 | ||
24 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
25 | Signed-off-by: Simon Busch <morphis@gravedo.de> | ||
26 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
27 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
28 | |||
29 | Conflicts: | ||
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 | |||
39 | diff --git a/configure b/configure | ||
40 | index 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 | |||
51 | diff --git a/qmake/property.cpp b/qmake/property.cpp | ||
52 | index 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 | }; | ||
63 | diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp | ||
64 | index 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", "" }, | ||
84 | diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h | ||
85 | index 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, | ||
96 | diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp | ||
97 | index 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 | -- | ||
133 | 2.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 |
14 | SRC_URI += "\ | 14 | SRC_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 | ||
25 | DEPENDS += "qtbase-native" | 25 | DEPENDS += "qtbase-native" |
@@ -139,20 +139,19 @@ QT_CONFIG_FLAGS += " \ | |||
139 | ${EXTRA_OECONF} \ | 139 | ${EXTRA_OECONF} \ |
140 | " | 140 | " |
141 | 141 | ||
142 | do_generate_qt_config_file_append() { | 142 | OE_QMAKE_PATH_HOST_BINS = "${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}" |
143 | cat >> ${QT_CONF_PATH} <<EOF | ||
144 | 143 | ||
144 | generate_qt_config_file_effective_paths() { | ||
145 | cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF | ||
145 | [EffectivePaths] | 146 | [EffectivePaths] |
146 | Prefix=.. | 147 | Prefix=${B} |
147 | EOF | 148 | EOF |
148 | } | 149 | } |
149 | 150 | ||
151 | OE_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} |
151 | QMAKE_MKSPEC_PATH = "${B}" | 153 | QMAKE_MKSPEC_PATH_TARGET = "${B}" |
152 | 154 | QMAKE_MKSPEC_PATH = "${S}" | |
153 | # another exception is that we need to run bin/qmake, because EffectivePaths are relative to qmake location | ||
154 | OE_QMAKE_QMAKE_ORIG = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" | ||
155 | OE_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 |
158 | export OE_QMAKE_COMPILER | 157 | export OE_QMAKE_COMPILER |
@@ -166,17 +165,9 @@ export OE_QMAKE_AR | |||
166 | export OE_QMAKE_STRIP | 165 | export OE_QMAKE_STRIP |
167 | 166 | ||
168 | do_configure() { | 167 | do_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 | ||
205 | do_install_append() { | 196 | do_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 | ||
230 | PACKAGES =. " \ | 219 | PACKAGES =. " \ |
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 | ||
34 | do_install_append_class-nativesdk() { | ||
35 | # qml files not needed in nativesdk | ||
36 | rm -rf ${D}${OE_QMAKE_PATH_QML} | ||
37 | } | ||
38 | |||
34 | EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtxmlpatterns', 'CONFIG+=OE_QTXMLPATTERNS_ENABLED', '', d)}" | 39 | EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'qtxmlpatterns', 'CONFIG+=OE_QTXMLPATTERNS_ENABLED', '', d)}" |
35 | 40 | ||
36 | SRCREV = "1064d5100f4d00af5f56b87331251f97d78f8b87" | 41 | SRCREV = "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 | ||
20 | do_configure() { | 20 | do_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 | ||
24 | do_install() { | 24 | do_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}" \ |