Search up the directory tree for bblayers.conf
authorChris Larson <chris_larson@mentor.com>
Wed, 14 Apr 2010 21:38:18 +0000 (14:38 -0700)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 2 Jul 2010 14:41:33 +0000 (15:41 +0100)
(Bitbake rev: 1c6b31c649474b4c2b63ef9d9311e61de20bc8c2)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/cooker.py

index 7a19740..613654d 100644 (file)
@@ -510,14 +510,23 @@ class BBCooker:
         else:
             shell.start( self )
 
+    def _findLayerConf(self):
+        path = os.getcwd()
+        while path != "/":
+            bblayers = os.path.join(path, "conf", "bblayers.conf")
+            if os.path.exists(bblayers):
+                return bblayers
+
+            path, _ = os.path.split(path)
+
     def parseConfigurationFiles(self, files):
         try:
             data = self.configuration.data
             for f in files:
                 data = bb.parse.handle(f, data)
 
-            layerconf = os.path.join(os.getcwd(), "conf", "bblayers.conf")
-            if os.path.exists(layerconf):
+            layerconf = self._findLayerConf()
+            if layerconf:
                 bb.msg.debug(2, bb.msg.domain.Parsing, "Found bblayers.conf (%s)" % layerconf)
                 data = bb.parse.handle(layerconf, data)
 
@@ -565,6 +574,7 @@ class BBCooker:
 
             bb.event.fire(bb.event.ConfigParsed(), self.configuration.data)
 
+
         except IOError, e:
             bb.msg.fatal(bb.msg.domain.Parsing, "Error when parsing %s: %s" % (files, str(e)))
         except bb.parse.ParseError, details: