[bitbake-devel] Dongxiao Xu : cooker: remove command import in cooker.py
git at git.openembedded.org
git at git.openembedded.org
Fri Jan 6 16:02:57 UTC 2012
Module: bitbake.git
Branch: master
Commit: c353316b2efcc7a893d6b4aa9a9647d51a6f69e3
URL: http://git.openembedded.org/?p=bitbake.git&a=commit;h=c353316b2efcc7a893d6b4aa9a9647d51a6f69e3
Author: Dongxiao Xu <dongxiao.xu at intel.com>
Date: Fri Jan 6 17:02:28 2012 +0800
cooker: remove command import in cooker.py
There is no direct use of command in cooker.py, and it is using
bb.command instead. Remove command in the import list.
This fixes a problem of embedded import between command.py and
cooker.py.
Signed-off-by: Dongxiao Xu <dongxiao.xu at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/bb/command.py | 11 +++++++++++
lib/bb/cooker.py | 12 ++++++++++++
lib/bb/event.py | 8 ++++++++
3 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/lib/bb/command.py b/lib/bb/command.py
index 701b286..bd41f54 100644
--- a/lib/bb/command.py
+++ b/lib/bb/command.py
@@ -238,6 +238,17 @@ class CommandsAsync:
command.finishAsyncCommand()
generateTargetsTree.needcache = True
+ def findCoreBaseFiles(self, command, params):
+ """
+ Find certain files in COREBASE directory. i.e. Layers
+ """
+ subdir = params[0]
+ filename = params[1]
+
+ command.cooker.findCoreBaseFiles(subdir, filename)
+ command.finishAsyncCommand()
+ findCoreBaseFiles.needcache = False
+
def findConfigFiles(self, command, params):
"""
Find config files which provide appropriate values
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 102d40f..2032718 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -641,6 +641,18 @@ class BBCooker:
if regex in unmatched:
collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
+ def findCoreBaseFiles(self, subdir, configfile):
+ corebase = self.configuration.data.getVar('COREBASE', True) or ""
+ paths = []
+ for root, dirs, files in os.walk(corebase + '/' + subdir):
+ for d in dirs:
+ configfilepath = os.path.join(root, d, configfile)
+ if os.path.exists(configfilepath):
+ paths.append(os.path.join(root, d))
+
+ if paths:
+ bb.event.fire(bb.event.CoreBaseFilesFound(paths), self.configuration.data)
+
def findConfigFilePath(self, configfile):
"""
Find the location on disk of configfile and if it exists and was parsed by BitBake
diff --git a/lib/bb/event.py b/lib/bb/event.py
index 088cd7c..8d7f941 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -402,6 +402,14 @@ class FilesMatchingFound(Event):
self._pattern = pattern
self._matches = matches
+class CoreBaseFilesFound(Event):
+ """
+ Event when a list of appropriate config files has been generated
+ """
+ def __init__(self, paths):
+ Event.__init__(self)
+ self._paths = paths
+
class ConfigFilesFound(Event):
"""
Event when a list of appropriate config files has been generated
More information about the bitbake-devel
mailing list