diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2013-05-08 22:40:30 +0200 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2013-05-09 13:56:49 +0200 |
commit | 7caede7850d7b33011a5a0e3124180db2f7a0d6c (patch) | |
tree | 75e504c15ac33e38fb7ad58135e04662ecf25163 | |
parent | 56d2c7f18d5058a168df01d6a4797514a0f958b6 (diff) | |
download | meta-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.bbclass | 27 | ||||
-rw-r--r-- | recipes-qt/qt5/qt5.inc | 9 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase-native.inc | 9 | ||||
-rw-r--r-- | recipes-qt/qt5/qtbase.inc | 6 | ||||
-rw-r--r-- | recipes-qt/qt5/qtjsbackend-native.inc | 9 | ||||
-rw-r--r-- | recipes-qt/qt5/qtwebkit.inc | 2 |
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 | ||
128 | SEPB = "${WORKDIR}/build" | ||
129 | B = "${SEPB}" | ||
130 | |||
131 | CONFIGURESTAMPFILE = "${WORKDIR}/qmake5_base_configure.sstate" | ||
132 | |||
133 | qmake5_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 | |||
143 | qmake5_base_postconfigure(){ | ||
144 | if [ -n "${CONFIGURESTAMPFILE}" ]; then | ||
145 | echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE} | ||
146 | fi | ||
147 | } | ||
148 | |||
149 | EXTRAQCONFFUNCS ??= "" | ||
150 | |||
151 | do_configure[prefuncs] += "qmake5_base_preconfigure ${EXTRAQCONFFUNCS}" | ||
152 | do_configure[postfuncs] += "qmake5_base_postconfigure" | ||
153 | |||
127 | addtask generate_qt_config_file after do_patch before do_configure | 154 | addtask generate_qt_config_file after do_patch before do_configure |
128 | 155 | ||
129 | qmake5_base_do_configure () { | 156 | 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 | |||
11 | 11 | ||
12 | QT_MODULE ?= "${BPN}" | 12 | QT_MODULE ?= "${BPN}" |
13 | 13 | ||
14 | SEPB = "${WORKDIR}/build" | ||
15 | B = "${SEPB}" | ||
16 | |||
17 | do_configure() { | 14 | do_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 |
27 | SRC_URI += "file://0001-Always-build-uic.patch" | 27 | SRC_URI += "file://0001-Always-build-uic.patch" |
28 | 28 | ||
29 | SEPB = "${WORKDIR}/build" | ||
30 | B = "${SEPB}" | ||
31 | |||
32 | QT_CONF_PATH = "${B}/qt.conf" | 29 | QT_CONF_PATH = "${B}/qt.conf" |
33 | 30 | ||
34 | do_generate_qt_config_file() { | 31 | do_generate_qt_config_file() { |
@@ -86,12 +83,6 @@ export OE_QMAKE_AR | |||
86 | export OE_QMAKE_STRIP | 83 | export OE_QMAKE_STRIP |
87 | 84 | ||
88 | do_configure_prepend() { | 85 | do_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 | ||
20 | SEPB = "${WORKDIR}/build" | ||
21 | B = "${SEPB}" | ||
22 | |||
23 | do_configure() { | 20 | do_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 | ||
12 | do_configure_append() { | 12 | do_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 | } |