[oe-commits] Markus Lehtonen : externalsrc.bbclass: better filtering of cleandirs

git at git.openembedded.org git at git.openembedded.org
Wed Sep 9 21:58:26 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: d0eade4e8d2fd812d80e4bf4ead42334249f3219
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=d0eade4e8d2fd812d80e4bf4ead42334249f3219

Author: Markus Lehtonen <markus.lehtonen at linux.intel.com>
Date:   Tue Sep  8 13:36:40 2015 +0300

externalsrc.bbclass: better filtering of cleandirs

We really do not want our (external) source tree to be removed. There
might be multiple values in the 'cleandirs' varflag pointing to our
source tree - causing it to be wiped out. This patch improves the
filtering of 'cleandirs' by examining the expanded values inside it. Any
(expanded) values pointing to our source tree get removed.

Signed-off-by: Markus Lehtonen <markus.lehtonen at linux.intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>

---

 meta/classes/externalsrc.bbclass | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index 37c6320..0fa5817 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -62,18 +62,14 @@ python () {
                 d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock")
 
             # We do not want our source to be wiped out, ever (kernel.bbclass does this for do_clean)
-            cleandirs = d.getVarFlag(task, 'cleandirs', False)
-            if cleandirs:
-                cleandirs = cleandirs.split()
-                setvalue = False
-                if '${S}' in cleandirs:
-                    cleandirs.remove('${S}')
+            cleandirs = (d.getVarFlag(task, 'cleandirs', False) or '').split()
+            setvalue = False
+            for cleandir in cleandirs[:]:
+                if d.expand(cleandir) == externalsrc:
+                    cleandirs.remove(cleandir)
                     setvalue = True
-                if externalsrcbuild == externalsrc and '${B}' in cleandirs:
-                    cleandirs.remove('${B}')
-                    setvalue = True
-                if setvalue:
-                    d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs))
+            if setvalue:
+                d.setVarFlag(task, 'cleandirs', ' '.join(cleandirs))
 
         fetch_tasks = ['do_fetch', 'do_unpack']
         # If we deltask do_patch, there's no dependency to ensure do_unpack gets run, so add one



More information about the Openembedded-commits mailing list