[oe-commits] [bitbake] 02/03: bitbake-user-manual: Updated the "inherit Directive" section.

git at git.openembedded.org git at git.openembedded.org
Wed Mar 23 21:57:17 UTC 2016


rpurdie pushed a commit to branch master
in repository bitbake.

commit 07f97f4d913cf1c8233995152105fff6c6c7b9a0
Author: Scott Rifenbark <srifenbark at gmail.com>
AuthorDate: Tue Mar 22 13:35:28 2016 -0700

    bitbake-user-manual: Updated the "inherit Directive" section.
    
    Fixes [YOCTO #9283]
    
    Updated the description to document conditional inherits.  Provided
    several examples.
    
    Signed-off-by: Scott Rifenbark <srifenbark at gmail.com>
---
 .../bitbake-user-manual-metadata.xml               | 45 ++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
index b3e7dd8..862a6bd 100644
--- a/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
+++ b/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
@@ -652,6 +652,51 @@
                     after the "inherit" statement.
                 </note>
             </para>
+
+            <para>
+                If necessary, it is possible to inherit a class
+                conditionally by using
+                a variable expression after the <filename>inherit</filename>
+                statement.
+                Here is an example:
+                <literallayout class='monospaced'>
+     inherit ${VARNAME}
+                </literallayout>
+                If <filename>VARNAME</filename> is going to be set, it needs
+                to be set before the <filename>inherit</filename> statement
+                is parsed.
+                One way to achieve a conditional inherit in this case is to use
+                overrides:
+                <literallayout class='monospaced'>
+     VARIABLE = ""
+     VARIABLE_someoverride = "myclass"
+                </literallayout>
+            </para>
+
+            <para>
+                Another method is by using anonymous Python.
+                Here is an example:
+                <literallayout class='monospaced'>
+     python () {
+         if condition == value:
+             d.setVar('VARIABLE', 'myclass')
+         else:
+             d.setVar('VARIABLE', '')
+     }
+                </literallayout>
+            </para>
+
+            <para>
+                Alternatively, you could use an in-line Python expression
+                in the following form:
+                <literallayout class='monospaced'>
+     inherit ${@'classname' if condition else ''}
+     inherit ${@functionname(params)}
+                </literallayout>
+                In all cases, if the expression evaluates to an empty
+                string, the statement does not trigger a syntax error
+                because it becomes a no-op.
+            </para>
         </section>
 
         <section id='include-directive'>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list