aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2013-05-08 22:40:30 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2013-05-09 13:56:49 +0200
commit7caede7850d7b33011a5a0e3124180db2f7a0d6c (patch)
tree75e504c15ac33e38fb7ad58135e04662ecf25163
parent56d2c7f18d5058a168df01d6a4797514a0f958b6 (diff)
qmake5: Fix cleaning separate build directory and use it by default
* "${B}/*" in quotes doesn't match anything, better to remove whole directory (incluing .files) and recreate it * not sure why I've added quotes after testing first version, we don't expect B with spaces.. but I'm a bit scared with rm -rf ${SOME_VAR} after one glibc upgrade cleaned my whole disk and attached NFS array when OLD_LOCALE_PATH wasn't detected correctly... * qmake works well with separate B, use it by default Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--classes/qmake5_base.bbclass27
-rw-r--r--recipes-qt/qt5/qt5.inc9
-rw-r--r--recipes-qt/qt5/qtbase-native.inc9
-rw-r--r--recipes-qt/qt5/qtbase.inc6
-rw-r--r--recipes-qt/qt5/qtjsbackend-native.inc9
-rw-r--r--recipes-qt/qt5/qtwebkit.inc2
6 files changed, 28 insertions, 34 deletions
diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass
index 9aeafd70..0bfacec3 100644
--- a/classes/qmake5_base.bbclass
+++ b/classes/qmake5_base.bbclass
@@ -124,6 +124,33 @@ EOF
# TargetSpec The location where to install target mkspec
# HostSpec The location where to install host mkspec
+# qmake works fine with separate B, use it by default
+SEPB = "${WORKDIR}/build"
+B = "${SEPB}"
+
+CONFIGURESTAMPFILE = "${WORKDIR}/qmake5_base_configure.sstate"
+
+qmake5_base_preconfigure() {
+ if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
+ if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${S}" != "${B}" ]; then
+ echo "Previously configured separate build directory detected, cleaning ${B}"
+ rm -rf ${B}
+ mkdir ${B}
+ fi
+ fi
+}
+
+qmake5_base_postconfigure(){
+ if [ -n "${CONFIGURESTAMPFILE}" ]; then
+ echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
+ fi
+}
+
+EXTRAQCONFFUNCS ??= ""
+
+do_configure[prefuncs] += "qmake5_base_preconfigure ${EXTRAQCONFFUNCS}"
+do_configure[postfuncs] += "qmake5_base_postconfigure"
+
addtask generate_qt_config_file after do_patch before do_configure
qmake5_base_do_configure () {
diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc
index e752ed6e..b29bc891 100644
--- a/recipes-qt/qt5/qt5.inc
+++ b/recipes-qt/qt5/qt5.inc
@@ -11,19 +11,10 @@ require qt5_arch.inc
QT_MODULE ?= "${BPN}"
-SEPB = "${WORKDIR}/build"
-B = "${SEPB}"
-
do_configure() {
set_arch
set_endian
- # Similar logic is in autotools.bbclass
- if [ -d ${B} -a "${S}" != "${B}" ] ; then
- # Existing separate build directory, exists, remove
- rm -rf "${B}/*"
- fi
-
qmake5_base_do_configure
}
diff --git a/recipes-qt/qt5/qtbase-native.inc b/recipes-qt/qt5/qtbase-native.inc
index cd54990d..12166951 100644
--- a/recipes-qt/qt5/qtbase-native.inc
+++ b/recipes-qt/qt5/qtbase-native.inc
@@ -26,9 +26,6 @@ SRC_URI += " \
# specific for native version
SRC_URI += "file://0001-Always-build-uic.patch"
-SEPB = "${WORKDIR}/build"
-B = "${SEPB}"
-
QT_CONF_PATH = "${B}/qt.conf"
do_generate_qt_config_file() {
@@ -86,12 +83,6 @@ export OE_QMAKE_AR
export OE_QMAKE_STRIP
do_configure_prepend() {
- # Similar logic is in autotools.bbclass
- if [ -d ${B} -a "${S}" != "${B}" ] ; then
- # Existing separate build directory, exists, remove
- rm -rf "${B}/*"
- fi
-
(echo o; echo yes) | ${S}/configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}"
bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}"
}
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index 9348fc66..139811f6 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -105,12 +105,6 @@ do_configure() {
set_arch
set_endian
- # Similar logic is in autotools.bbclass
- if [ -d ${B} -a "${S}" != "${B}" ] ; then
- # Existing separate build directory, exists, remove
- rm -rf "${B}/*"
- fi
-
# we need symlink in path relative to source, because
# EffectivePaths:Prefix is relative to qmake location
if [ ! -e ${B}/bin/qmake ]; then
diff --git a/recipes-qt/qt5/qtjsbackend-native.inc b/recipes-qt/qt5/qtjsbackend-native.inc
index 3db01350..2cf113d8 100644
--- a/recipes-qt/qt5/qtjsbackend-native.inc
+++ b/recipes-qt/qt5/qtjsbackend-native.inc
@@ -17,16 +17,7 @@ SRC_URI += "\
file://0001-Install-the-mkv8snapshot-tool-to-the-native-side.patch \
"
-SEPB = "${WORKDIR}/build"
-B = "${SEPB}"
-
do_configure() {
- # Similar logic is in autotools.bbclass
- if [ -d ${B} -a "${S}" != "${B}" ] ; then
- # Existing separate build directory, exists, remove
- rm -rf "${B}/*"
- fi
-
${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S}
}
diff --git a/recipes-qt/qt5/qtwebkit.inc b/recipes-qt/qt5/qtwebkit.inc
index 66f3af49..a25820be 100644
--- a/recipes-qt/qt5/qtwebkit.inc
+++ b/recipes-qt/qt5/qtwebkit.inc
@@ -11,5 +11,5 @@ INC_PR = "r0"
do_configure_append() {
# Fix rpaths for QtWebProcess
- find -name "Makefile*" | xargs sed -i "s|-Wl,-rpath,${SEPB}/lib||g"
+ find -name "Makefile*" | xargs sed -i "s|-Wl,-rpath,${B}/lib||g"
}