]> code.ossystems Code Review - openembedded-core.git/commitdiff
base.bbclass: switch to current OE's imports handling
authorChris Larson <chris_larson@mentor.com>
Wed, 9 Feb 2011 14:09:43 +0000 (07:09 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 20 May 2011 16:33:40 +0000 (17:33 +0100)
The current mechanism makes it easier for classes to add new oe modules to be
automatically imported, and thereby made available to python snippets (${@}).

Signed-off-by: Chris Larson <chris_larson@mentor.com>
meta/classes/base.bbclass

index b552de2948538937de5fcfcec0e0ceef3360df30..51f5a14a45e36144cccdcd32adf38c70ce0456a6 100644 (file)
@@ -10,32 +10,28 @@ inherit metadata_scm
 inherit buildstats
 inherit logging
 
-python sys_path_eh () {
+OE_IMPORTS += "os sys time oe.path oe.utils oe.data"
+
+python oe_import () {
     if isinstance(e, bb.event.ConfigParsed):
-        import sys
-        import os
-        import time
+        import os, sys
 
         bbpath = e.data.getVar("BBPATH", True).split(":")
         sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath]
 
         def inject(name, value):
-            """Make a python object accessible from everywhere for the metadata"""
+            """Make a python object accessible from the metadata"""
             if hasattr(bb.utils, "_context"):
                 bb.utils._context[name] = value
             else:
                 __builtins__[name] = value
 
-        import oe.path
-        import oe.utils
-        import oe.data
-        inject("bb", bb)
-        inject("sys", sys)
-        inject("time", time)
-        inject("oe", oe)
+        for toimport in e.data.getVar("OE_IMPORTS", True).split():
+            imported = __import__(toimport)
+            inject(toimport.split(".", 1)[0], imported)
 }
 
-addhandler sys_path_eh
+addhandler oe_import
 
 die() {
        bbfatal "$*"