summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@theqtcompany.com>2016-03-15 13:07:11 +0200
committerSamuli Piippo <samuli.piippo@theqtcompany.com>2016-04-13 08:18:45 +0000
commitfc91b16ed2a877412cd3a67023a6217e8671c3e4 (patch)
tree79e0af3098fc82423d36bfc25176f2b85f2607b3 /classes
parente088f366191f9a4cadc815c3d72d85086619a184 (diff)
downloadmeta-qt5-fc91b16ed2a877412cd3a67023a6217e8671c3e4.tar.gz
qt5: Add mingw support
Change-Id: Ibd6449396be71761e10c84bdb9a9b1888affc618 Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
Diffstat (limited to 'classes')
-rw-r--r--classes/qmake5.bbclass4
-rw-r--r--classes/qmake5_base.bbclass70
2 files changed, 42 insertions, 32 deletions
diff --git a/classes/qmake5.bbclass b/classes/qmake5.bbclass
index 2b43f2e3..1a960e8f 100644
--- a/classes/qmake5.bbclass
+++ b/classes/qmake5.bbclass
@@ -17,7 +17,3 @@ do_install() {
17do_install_class-native() { 17do_install_class-native() {
18 qmake5_base_native_do_install 18 qmake5_base_native_do_install
19} 19}
20
21do_install_class-nativesdk() {
22 qmake5_base_nativesdk_do_install
23}
diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass
index c2a84985..eb070a0a 100644
--- a/classes/qmake5_base.bbclass
+++ b/classes/qmake5_base.bbclass
@@ -30,8 +30,6 @@ EXTRA_OEMAKE = " \
30 OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \ 30 OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \
31" 31"
32 32
33OE_QMAKESPEC = "${QMAKE_MKSPEC_PATH_NATIVE}/mkspecs/${OE_QMAKE_PLATFORM_NATIVE}"
34OE_XQMAKESPEC = "${QMAKE_MKSPEC_PATH}/mkspecs/${OE_QMAKE_PLATFORM}"
35OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake" 33OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/qmake"
36OE_QMAKE_COMPILER = "${CC}" 34OE_QMAKE_COMPILER = "${CC}"
37OE_QMAKE_CC = "${CC}" 35OE_QMAKE_CC = "${CC}"
@@ -43,14 +41,18 @@ OE_QMAKE_LDFLAGS = "${LDFLAGS}"
43OE_QMAKE_AR = "${AR}" 41OE_QMAKE_AR = "${AR}"
44OE_QMAKE_STRIP = "echo" 42OE_QMAKE_STRIP = "echo"
45OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner" 43OE_QMAKE_WAYLAND_SCANNER = "${STAGING_BINDIR_NATIVE}/wayland-scanner"
46 44OE_QMAKE_QTCONF_PATH = "${WORKDIR}/qt.conf"
47# this one needs to be exported, because qmake reads it from shell env 45OE_QMAKE_QTCONF = "-qtconf ${OE_QMAKE_QTCONF_PATH}"
48export QT_CONF_PATH = "${WORKDIR}/qt.conf"
49 46
50inherit qmake5_paths remove-libtool 47inherit qmake5_paths remove-libtool
51 48
52do_generate_qt_config_file() { 49do_generate_qt_config_file() {
53 cat > ${QT_CONF_PATH} <<EOF 50 generate_qt_config_file_paths
51 generate_qt_config_file_effective_paths
52}
53
54generate_qt_config_file_paths() {
55 cat > ${OE_QMAKE_QTCONF_PATH} <<EOF
54[Paths] 56[Paths]
55Prefix = ${OE_QMAKE_PATH_PREFIX} 57Prefix = ${OE_QMAKE_PATH_PREFIX}
56Headers = ${OE_QMAKE_PATH_HEADERS} 58Headers = ${OE_QMAKE_PATH_HEADERS}
@@ -70,12 +72,21 @@ Tests = ${OE_QMAKE_PATH_TESTS}
70HostBinaries = ${OE_QMAKE_PATH_HOST_BINS} 72HostBinaries = ${OE_QMAKE_PATH_HOST_BINS}
71HostData = ${OE_QMAKE_PATH_HOST_DATA} 73HostData = ${OE_QMAKE_PATH_HOST_DATA}
72HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS} 74HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS}
73HostSpec = ${OE_QMAKESPEC} 75HostSpec = ${OE_QMAKE_PLATFORM_NATIVE}
74TartgetSpec = ${OE_XQMAKESPEC} 76TargetSpec = ${OE_QMAKE_PLATFORM}
75ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} 77ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
76Sysroot = ${STAGING_DIR_TARGET} 78Sysroot = ${STAGING_DIR_TARGET}
77EOF 79EOF
78} 80}
81
82generate_qt_config_file_effective_paths() {
83 cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF
84[EffectivePaths]
85HostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
86HostData = ${OE_QMAKE_PATH_HOST_DATA}
87HostPrefix = ${STAGING_DIR_NATIVE}${prefix_native}
88EOF
89}
79# 90#
80# Allows to override following values (as in version 5.0.1) 91# Allows to override following values (as in version 5.0.1)
81# Prefix The default prefix for all paths. 92# Prefix The default prefix for all paths.
@@ -154,8 +165,8 @@ qmake5_base_do_configure () {
154 # for config.tests to read this 165 # for config.tests to read this
155 export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}" 166 export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}"
156 167
157 CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST" 168 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" 169 ${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} 170}
160 171
161qmake5_base_native_do_install() { 172qmake5_base_native_do_install() {
@@ -163,32 +174,35 @@ qmake5_base_native_do_install() {
163 find "${D}" -ignore_readdir_race -name "*.la" -delete 174 find "${D}" -ignore_readdir_race -name "*.la" -delete
164} 175}
165 176
166qmake5_base_nativesdk_do_install() { 177qmake5_base_fix_install() {
167 # Fix install paths for all 178 STAGING_PATH=$1
168 find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_HOST},(INSTALL_ROOT),g" 179 if [ -d ${D}${STAGING_PATH} ] ; then
169 180 echo "Some files are installed in wrong directory ${D}${STAGING_PATH}"
170 oe_runmake install INSTALL_ROOT=${D} 181 cp -ra ${D}${STAGING_PATH}/* ${D}
182 rm -rf ${D}${STAGING_PATH}
183 # remove empty dirs
184 TMP=`dirname ${D}${STAGING_PATH}`
185 while test ${TMP} != ${D}; do
186 rmdir ${TMP}
187 TMP=`dirname ${TMP}`;
188 done
189 fi
171} 190}
172 191
173qmake5_base_do_install() { 192qmake5_base_do_install() {
174 # Fix install paths for all 193 # Fix install paths for all
175 find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g" 194 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_HOST},(INSTALL_ROOT),g"
196 find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE},(INSTALL_ROOT),g"
176 197
177 oe_runmake install INSTALL_ROOT=${D} 198 oe_runmake install INSTALL_ROOT=${D}
199 find "${D}" -ignore_readdir_race -name "*.la" -delete
178 200
179 # everything except HostData and HostBinaries is prefixed with sysroot value, 201 # everything except HostData and HostBinaries is prefixed with sysroot value,
180 # 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
181 # 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
182 # fix them manually 204 # sed changes. If that happens, move files manually to correct location.
183 if [ -d ${D}${STAGING_DIR_TARGET} ] ; then 205 qmake5_base_fix_install ${STAGING_DIR_TARGET}
184 echo "Some files are installed in wrong directory ${D}${STAGING_DIR_TARGET}" 206 qmake5_base_fix_install ${STAGING_DIR_HOST}
185 cp -ra ${D}${STAGING_DIR_TARGET}/* ${D} 207 qmake5_base_fix_install ${STAGING_DIR_NATIVE}
186 rm -rf ${D}${STAGING_DIR_TARGET}
187 # remove empty dirs
188 TMP=`dirname ${D}/${STAGING_DIR_TARGET}`
189 while test ${TMP} != ${D}; do
190 rmdir ${TMP}
191 TMP=`dirname ${TMP}`;
192 done
193 fi
194} 208}