[yocto] machine specific task

Patrick Ohly patrick.ohly at intel.com
Wed Oct 12 04:08:29 PDT 2016


On Wed, 2016-10-12 at 12:58 +0300, Mircea Gliga wrote:
> According to the docs here 
> http://www.yoctoproject.org/docs/2.1.1/mega-manual/mega-manual.html#structure-your-layers 
> one can specify variables that are machine specific, eg 
> KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb". I can't find a reference 
> on how to create a task specific only for a certain machine.
> Is there some mechanism to add and execute a custom task just for a 
> specific machine, using *addtask* ?
> 
> As an alternative, I could check the machine name right in the beginning 
> of the do_mycustomtask function, and execute code accordingly, something 
> like (pseudo-code):
> 
> do_mycustomtask {
>      if {MACHINE} != 'myMachineName'
>          return;
>      # code executing for all other machines
>      [...]
> }
> addtask mycustomtask after do_configure before do_compile

It is possible to add the task conditionally in an anonymous Python
method:

python () {
    if '${MACHINE}' == 'myMachineName':
        bb.build.addtask('do_mycustomtask', 'do_compile', 'do_configure', d)
}

I personally find that nicer than the if check in the function itself,
because the tasks will only show up in build logs when it actually does
something.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.






More information about the yocto mailing list