[OE-core] How to reuse code in oe-core environment

Andreas Mueller schnitzeltony at gmx.de
Thu Jun 30 00:39:28 UTC 2011


On Thursday, June 30, 2011 01:59:33 AM Chris Larson wrote:
> On Wed, Jun 29, 2011 at 4:02 PM, Andreas Mueller <schnitzeltony at gmx.de> wrote:
> > foo() {
> >        # code to reuse
> > }
> > 
> > and called foo from several recipes. In oe-core the run.* scripts are
> > much more stripped of unnecessary.  All the code included by 'require'
> > seems to miss, so the function foo() will not be found.
> > 
> > My searches for examples did not lead to a hook so what is the suggested
> > solution for reusing code for multiple recipes in oe-core?
> 
> The require doesn't have to do with anything. bitbake emits only the
> functions which get called somewhere from the task being run. It
> tracks what variables reference what other variables. If you call a
> shell function from another shell function, it tracks this, and
> realizes that both need to be emitted. Either you're doing something
> wrong, or you're doing something in a way that bitbake can't track.
> There's a variable flag you can set to explicitly add variable
> dependencies.
the scenario I wrote was not the whole truth - sorry:

I am making a new layer. There I have created u-boot_git.bbappend. In the build 
log I see that this extends u-boot_git.bb coming from meta-texasinstruments. In 
u-boot_git.bbappend there is (besides other showing me that bbappending works)

| require foo.inc

and

| do_deploy_append_<mynewmachine> {
|	foo
| }

the code in foo.inc is something like

| foo() {
|	sed ..
|	install ...
| }

Build stops complaining that foo cannot be found and the only function I see in 
run.do_deploy.nnnnn is do_deploy(). 

All code was taken from oe and builds fine there. Only difference to oe is that 
the lines now found in u-boot_git.bbappend were part of the one and only u-
boot_git.bb recipe.

Is it possible that that the dependency checks ignore functions brought in by 
bbappend - or where am I going wrong?

regards

Andreas




More information about the Openembedded-core mailing list