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 365c4b8f97..5304e40ce7 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
@@ -683,7 +683,7 @@
As with most languages, functions are the building blocks that
are used to build up operations into tasks.
- BitBake supports three types of functions:
+ BitBake supports these types of functions:
Shell Functions:
Functions written in shell script and executed either
@@ -697,6 +697,10 @@
Python Functions:
Functions written in Python and executed by Python.
+ Anonymous Python Functions:
+ Python functions executed automatically during
+ parsing.
+
Regardless of the type of function, you can only
define them in class (.bbclass)
@@ -793,6 +797,39 @@
+
+ Anonymous Python Functions
+
+
+ Sometimes it is useful to run some code during
+ parsing to set variables or to perform other operations
+ programmatically.
+ To do this, you can define an anonymous Python function.
+ Here is an example that conditionally sets a
+ variable based on the value of another variable:
+
+ python __anonymous () {
+ if d.getVar('SOMEVAR', True) == 'value':
+ d.setVar('ANOTHERVAR', 'value2')
+ }
+
+ The "__anonymous" function name is optional, so the
+ following example is functionally equivalent to the above:
+
+ python () {
+ if d.getVar('SOMEVAR', True) == 'value':
+ d.setVar('ANOTHERVAR', 'value2')
+ }
+
+ Because unlike other Python functions anonymous
+ Python functions are executed during parsing, the
+ "d" variable within an anonymous Python function represents
+ the datastore for the entire recipe.
+ Consequently, you can set variable values here and
+ those values can be picked up by other functions.
+
+
+
Flexible Inheritance for Class Functions
@@ -817,6 +854,9 @@
respectively, or it can redefine the function completely.
However, if it redefines the function, there is
no means for it to call the class version of the function.
+ EXPORT_FUNCTIONS provides a mechanism
+ that enables the recipe's version of the function to call
+ the original version of the function.