summaryrefslogtreecommitdiffstats
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)
downloadmeta-qt5-7caede7850d7b33011a5a0e3124180db2f7a0d6c.tar.gz
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
124# TargetSpec The location where to install target mkspec 124# TargetSpec The location where to install target mkspec
125# HostSpec The location where to install host mkspec 125# HostSpec The location where to install host mkspec
126 126
127# qmake works fine with separate B, use it by default
128SEPB = "${WORKDIR}/build"
129B = "${SEPB}"
130
131CONFIGURESTAMPFILE = "${WORKDIR}/qmake5_base_configure.sstate"
132
133qmake5_base_preconfigure() {
134 if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
135 if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${S}" != "${B}" ]; then
136 echo "Previously configured separate build directory detected, cleaning ${B}"
137 rm -rf ${B}
138 mkdir ${B}
139 fi
140 fi
141}
142
143qmake5_base_postconfigure(){
144 if [ -n "${CONFIGURESTAMPFILE}" ]; then
145 echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
146 fi
147}
148
149EXTRAQCONFFUNCS ??= ""
150
151do_configure[prefuncs] += "qmake5_base_preconfigure ${EXTRAQCONFFUNCS}"
152do_configure[postfuncs] += "qmake5_base_postconfigure"
153
127addtask generate_qt_config_file after do_patch before do_configure 154addtask generate_qt_config_file after do_patch before do_configure
128 155
129qmake5_base_do_configure () { 156qmake5_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
11 11
12QT_MODULE ?= "${BPN}" 12QT_MODULE ?= "${BPN}"
13 13
14SEPB = "${WORKDIR}/build"
15B = "${SEPB}"
16
17do_configure() { 14do_configure() {
18 set_arch 15 set_arch
19 set_endian 16 set_endian
20 17
21 # Similar logic is in autotools.bbclass
22 if [ -d ${B} -a "${S}" != "${B}" ] ; then
23 # Existing separate build directory, exists, remove
24 rm -rf "${B}/*"
25 fi
26
27 qmake5_base_do_configure 18 qmake5_base_do_configure
28} 19}
29 20
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 += " \
26# specific for native version 26# specific for native version
27SRC_URI += "file://0001-Always-build-uic.patch" 27SRC_URI += "file://0001-Always-build-uic.patch"
28 28
29SEPB = "${WORKDIR}/build"
30B = "${SEPB}"
31
32QT_CONF_PATH = "${B}/qt.conf" 29QT_CONF_PATH = "${B}/qt.conf"
33 30
34do_generate_qt_config_file() { 31do_generate_qt_config_file() {
@@ -86,12 +83,6 @@ export OE_QMAKE_AR
86export OE_QMAKE_STRIP 83export OE_QMAKE_STRIP
87 84
88do_configure_prepend() { 85do_configure_prepend() {
89 # Similar logic is in autotools.bbclass
90 if [ -d ${B} -a "${S}" != "${B}" ] ; then
91 # Existing separate build directory, exists, remove
92 rm -rf "${B}/*"
93 fi
94
95 (echo o; echo yes) | ${S}/configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" 86 (echo o; echo yes) | ${S}/configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}"
96 bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}" 87 bin/qmake ${OE_QMAKE_DEBUG_OUTPUT} ${S} -o Makefile || die "Configuring qt with qmake failed. EXTRA_OECONF was ${EXTRA_OECONF}"
97} 88}
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() {
105 set_arch 105 set_arch
106 set_endian 106 set_endian
107 107
108 # Similar logic is in autotools.bbclass
109 if [ -d ${B} -a "${S}" != "${B}" ] ; then
110 # Existing separate build directory, exists, remove
111 rm -rf "${B}/*"
112 fi
113
114 # we need symlink in path relative to source, because 108 # we need symlink in path relative to source, because
115 # EffectivePaths:Prefix is relative to qmake location 109 # EffectivePaths:Prefix is relative to qmake location
116 if [ ! -e ${B}/bin/qmake ]; then 110 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 += "\
17 file://0001-Install-the-mkv8snapshot-tool-to-the-native-side.patch \ 17 file://0001-Install-the-mkv8snapshot-tool-to-the-native-side.patch \
18" 18"
19 19
20SEPB = "${WORKDIR}/build"
21B = "${SEPB}"
22
23do_configure() { 20do_configure() {
24 # Similar logic is in autotools.bbclass
25 if [ -d ${B} -a "${S}" != "${B}" ] ; then
26 # Existing separate build directory, exists, remove
27 rm -rf "${B}/*"
28 fi
29
30 ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S} 21 ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S}
31} 22}
32 23
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"
11 11
12do_configure_append() { 12do_configure_append() {
13 # Fix rpaths for QtWebProcess 13 # Fix rpaths for QtWebProcess
14 find -name "Makefile*" | xargs sed -i "s|-Wl,-rpath,${SEPB}/lib||g" 14 find -name "Makefile*" | xargs sed -i "s|-Wl,-rpath,${B}/lib||g"
15} 15}