[gnome-continuous-yocto/gnomeostree-3.28-rocko: 2891/8267] bitbake: bitbake-user-manual: Added examples for using overrides with functions.
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 2891/8267] bitbake: bitbake-user-manual: Added examples for using overrides with functions.
- Date: Sat, 16 Dec 2017 23:51:58 +0000 (UTC)
commit 7ab459d4b5a441c6c50c9579f89c295d56865f32
Author: Scott Rifenbark <srifenbark gmail com>
Date: Wed Sep 21 15:30:14 2016 -0700
bitbake: bitbake-user-manual: Added examples for using overrides with functions.
Fixes [YOCTO #10296]
This adds some bits clarifying you can append and prepend to
functions. Added a bit to the introduction paragraph of the
"Appending and Prepending (Override Style Syntax)" section to
note that you can do this. Referenced some new examples.
In the "Shell Functions" section I added an example. In the
"BitBake Style Python Functions" section I also added an example.
(Bitbake rev: 6e6b7e10e04fdb94b59bd2ead3ccb79c899c7458)
Signed-off-by: Scott Rifenbark <srifenbark gmail com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
.../bitbake-user-manual-metadata.xml | 117 +++++++++++++++++--
1 files changed, 104 insertions(+), 13 deletions(-)
---
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
index 47691af..82094b8 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
@@ -277,6 +277,15 @@
override syntax.
</note>
</para>
+
+ <para>
+ It is also possible to append and prepend to shell
+ functions and BitBake-style Python functions.
+ See the
+ "<link linkend='shell-functions'>Shell Functions</link>" and
+ "<link linkend='bitbake-style-python-functions'>BitBake Style Python Functions</link>
+ sections for examples.
+ </para>
</section>
<section id='removing-override-style-syntax'>
@@ -1090,6 +1099,56 @@
such as <filename>dash</filename>.
You should not use Bash-specific script (bashisms).
</para>
+
+ <para>
+ Overrides and override-style operators like
+ <filename>_append</filename> and
+ <filename>_prepend</filename> can also be applied to
+ shell functions.
+ Most commonly, this application would be used in a
+ <filename>.bbappend</filename> file to modify functions in
+ the main recipe.
+ It can also be used to modify functions inherited from
+ classes.
+ </para>
+
+ <para>
+ As an example, consider the following:
+ <literallayout class='monospaced'>
+ do_foo() {
+ bbplain first
+ fn
+ }
+
+ fn_prepend() {
+ bbplain second
+ }
+
+ fn() {
+ bbplain third
+ }
+
+ do_foo_append() {
+ bbplain fourth
+ }
+ </literallayout>
+ The output from <filename>do_foo</filename>
+ results in the following:
+ <literallayout class='monospaced'>
+ recipename do_foo: first
+ recipename do_foo: second
+ recipename do_foo: third
+ recipename do_foo: fourth
+ </literallayout>
+ <note>
+ Overrides and override-style operators can
+ be applied to any shell function, not just
+ <link linkend='tasks'>tasks</link>.
+ </note>
+ You can use the <filename>bitbake -e</filename> <replaceable>recipename</replaceable>
+ command to view the final assembled function
+ after all overrides have been applied.
+ </para>
</section>
<section id='bitbake-style-python-functions'>
@@ -1114,19 +1173,51 @@
Also in these types of functions, the datastore ("d")
is a global variable and is always automatically
available.
- </para>
-
- <note>
- Variable expressions (e.g. <filename>${X}</filename>) are no
- longer expanded within Python functions.
- This behavior is intentional in order to allow you to freely
- set variable values to expandable expressions without having
- them expanded prematurely.
- If you do wish to expand a variable within a Python function,
- use <filename>d.getVar("X", True)</filename>.
- Or, for more complicated expressions, use
- <filename>d.expand()</filename>.
- </note>
+ <note>
+ Variable expressions (e.g. <filename>${X}</filename>)
+ are no longer expanded within Python functions.
+ This behavior is intentional in order to allow you
+ to freely set variable values to expandable expressions
+ without having them expanded prematurely.
+ If you do wish to expand a variable within a Python
+ function, use <filename>d.getVar("X", True)</filename>.
+ Or, for more complicated expressions, use
+ <filename>d.expand()</filename>.
+ </note>
+ </para>
+
+ <para>
+ Similar to shell functions, you can also apply overrides
+ and override-style operators to BitBake-style Python
+ functions.
+ </para>
+
+ <para>
+ As an example, consider the following:
+ <literallayout class='monospaced'>
+ python do_foo_prepend() {
+ bb.plain("first")
+ }
+
+ python do_foo() {
+ bb.plain("second")
+ }
+
+ python do_foo_append() {
+ bb.plain("third")
+ }
+ </literallayout>
+ The output from <filename>do_foo</filename> results
+ in the following:
+ <literallayout class='monospaced'>
+ recipename do_foo: first
+ recipename do_foo: second
+ recipename do_foo: third
+ </literallayout>
+ You can use the <filename>bitbake -e</filename> <replaceable>recipename</replaceable>
+ command to view the final assembled function
+ after all overrides have been applied.
+ </para>
</section>
<section id='python-functions'>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]