bitbake/lib/bb/event.py:
authorHolger Hans Peter Freyther <zecke@selfish.org>
Mon, 13 Mar 2006 22:58:51 +0000 (22:58 +0000)
committerHolger Hans Peter Freyther <zecke@selfish.org>
Mon, 13 Mar 2006 22:58:51 +0000 (22:58 +0000)
    Introduce a NoProvider Event. It contains
    a 'runtime' flag, the item name and the
    configuration data.

bitbake/bin/bitbake:
    Fire the NoProvider event at some spots. There
    are more events we need to fire. Ideally the
    BitBake UI would just be a handler...

bin/bitbake
lib/bb/event.py

index 8ecd98b..e6bdbee 100755 (executable)
@@ -492,6 +492,7 @@ class BBCooker:
 
         if not item in self.status.providers:
             bb.error("Nothing provides dependency %s" % item)
+            bb.event.fire(bb.event.NoProvider(item,self.configuration.data))
             return 0
 
         all_p = self.status.providers[item]
@@ -539,6 +540,7 @@ class BBCooker:
                 return 1
 
         bb.note("no buildable providers for %s" % item)
+        bb.event.fire(bb.event.NoProvider(item,self.configuration.data))
         return 0
 
     def buildRProvider( self, item , buildAllDeps ):
@@ -558,6 +560,7 @@ class BBCooker:
 
         if not all_p:
             bb.error("Nothing provides runtime dependency %s" % (item))
+            bb.event.fire(bb.event.NoProvider(item,self.configuration.data,runtime=True))
             return False
 
         for p in all_p:
@@ -612,6 +615,7 @@ class BBCooker:
                 return True
 
         bb.error("No buildable providers for runtime %s" % item)
+        bb.event.fire(bb.event.NoProvider(item,self.configuration.data))
         return False
 
     def getProvidersRun(self, rdepend):
index 673f307..cbe6d2a 100644 (file)
@@ -212,6 +212,19 @@ class UnsatisfiedDep(DepBase):
 class RecursiveDep(DepBase):
     """Recursive Dependency"""
 
+class NoProvider(Event):
+    """No Provider for an Event"""
+
+    def __init__(self, item, data,runtime=False):
+        Event.__init__(self, data)
+        self._item = item
+        self._runtime = runtime
+
+    def getItem(self):
+        return self._item
+
+    def isRuntime(self):
+        return self._runtime
 
 class MultipleProviders(Event):
     """Multiple Providers"""