diff options
author | Scott Rifenbark <srifenbark@gmail.com> | 2016-03-22 13:35:28 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-23 21:55:17 +0000 |
commit | 07f97f4d913cf1c8233995152105fff6c6c7b9a0 (patch) | |
tree | 5e4037be244a4b558a25832f4c0ef8e561adb3db /doc | |
parent | ea6d31a569d18b07cfc977d994a320a588c4f9c2 (diff) | |
download | bitbake-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.xml | 45 |
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'> |