base.bbclass: Run oe_import before other INHERITs
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 26 Mar 2014 09:30:33 +0000 (09:30 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 27 Mar 2014 09:42:06 +0000 (09:42 +0000)
Its possible for classes listed in INHERIT directives to use things like
the oe.utils functions. If that happens the user sees a traceback since
the modules don't become available until the ConfigParsed event.

This change to use immediate expansion means that the oe modules become available
much sooner and can be used in the core classes, including within base.bbclass.

(From OE-Core rev: a9ecad713f37f2703e99c6b856207abeb6c5ad1f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/base.bbclass

index 76a4ef6..7c39db9 100644 (file)
@@ -31,8 +31,12 @@ def oe_import(d):
         imported = __import__(toimport)
         inject(toimport.split(".", 1)[0], imported)
 
+    return ""
+
+# We need the oe module name space early (before INHERITs get added)
+OE_IMPORTED := "${@oe_import(d)}"
+
 python oe_import_eh () {
-    oe_import(e.data)
     e.data.setVar("NATIVELSBSTRING", lsb_distro_identifier(e.data))
 }