summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongxiao Xu <dongxiao.xu@intel.com>2012-01-06 17:02:28 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-06 15:54:46 +0000
commitc353316b2efcc7a893d6b4aa9a9647d51a6f69e3 (patch)
treedb34656d239ea96511dd944df026120b5381c193
parent92fec2788e33d301cc63848901bc6adc764a2ecf (diff)
downloadbitbake-c353316b2efcc7a893d6b4aa9a9647d51a6f69e3.tar.gz
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@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/command.py11
-rw-r--r--lib/bb/cooker.py12
-rw-r--r--lib/bb/event.py8
3 files changed, 31 insertions, 0 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py
index 701b28618..bd41f5418 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 102d40fda..203271868 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 088cd7c09..8d7f9413e 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