summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2016-03-22 13:35:28 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-23 21:55:17 +0000
commit07f97f4d913cf1c8233995152105fff6c6c7b9a0 (patch)
tree5e4037be244a4b558a25832f4c0ef8e561adb3db /doc
parentea6d31a569d18b07cfc977d994a320a588c4f9c2 (diff)
downloadbitbake-contrib-07f97f4d913cf1c8233995152105fff6c6c7b9a0.tar.gz
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@gmail.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/bitbake-user-manual/bitbake-user-manual-metadata.xml45
1 files changed, 45 insertions, 0 deletions
diff --git a/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
index b3e7dd8d9..862a6bddf 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'>