Skip to contentSkip to conversation

i guess there's no way to *conditionally* add tasks?

DISCUSSION Robert P. J. Day 3 participants 3 messages Aug 5, 2014

lore
Share & tools
lore
#0 lore raw

digging into ptest stuff, and i notice this in ptest.bbclass:

addtask configure_ptest_base after do_configure before do_compile

addtask compile_ptest_base   after do_compile   before do_install
addtask install_ptest_base   after do_install   before do_package do_populate_sysroot

python () {
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
d.setVarFlag('do_install_ptest_base', 'fakeroot', 1)

# Remove all '*ptest_base' tasks when ptest is not enabled
if not(d.getVar('PTEST_ENABLED', True) == "1"):
for i in ['do_configure_ptest_base', 'do_compile_ptest_base', 'do_install_ptest_base']:
bb.build.deltask(i, d)
}

so i'm guessing there's no way to conditionally add task(s) to avoid
adding them, only to turn around and delete them, yes?

rday

Signature · 7 lines
========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================
#1 lore raw

"Robert P. J. Day" <rpjday-L09J2beyid0N/[email protected]>

Quoted 11 lines · writes:

addtask configure_ptest_base after do_configure before do_compile

addtask compile_ptest_base   after do_compile   before do_install
addtask install_ptest_base   after do_install   before do_package do_populate_sysroot

...
# Remove all '*ptest_base' tasks when ptest is not enabled
if not(d.getVar('PTEST_ENABLED', True) == "1"):
for i in ['do_configure_ptest_base', 'do_compile_ptest_base', 'do_install_ptest_base']:
bb.build.deltask(i, d)

so i'm guessing there's no way to conditionally add task(s) to avoid
adding them, only to turn around and delete them, yes?

I solved similar issues by including files conditionally; e.g. above would be

---
ptest_inc = "${@['noop', 'ptest'][d.getVar('PTEST_ENABLED', True) == '1']}" include ptest-${ptest_inc}.inc

--- ptest-ptest.inc ---
addtask configure_ptest_base after do_configure before do_compile

addtask compile_ptest_base   after do_compile   before do_install
addtask install_ptest_base   after do_install   before do_package

do_populate_sysroot

Enrico

#2 lore raw
Quoted 12 lines · On Tuesday 05 August 2014 13:28:45 Enrico Scholz wrote:

"Robert P. J. Day" <rpjday-L09J2beyid0N/[email protected]>

Quoted 9 lines · writes:

addtask configure_ptest_base after do_configure before do_compile

addtask compile_ptest_base   after do_compile   before do_install
addtask install_ptest_base   after do_install   before do_package

do_populate_sysroot ...

# Remove all '*ptest_base' tasks when ptest is not enabled

if not(d.getVar('PTEST_ENABLED', True) == "1"):
for i in ['do_configure_ptest_base', 'do_compile_ptest_base',

'do_install_ptest_base']:

Quoted 13 lines
Quoted 5 lines

bb.build.deltask(i, d)

so i'm guessing there's no way to conditionally add task(s) to avoid

adding them, only to turn around and delete them, yes?

I solved similar issues by including files conditionally; e.g. above would be

---
ptest_inc = "${@['noop', 'ptest'][d.getVar('PTEST_ENABLED', True) == '1']}" include ptest-${ptest_inc}.inc

Quoted 5 lines

--- ptest-ptest.inc ---
addtask configure_ptest_base after do_configure before do_compile

addtask compile_ptest_base   after do_compile   before do_install
addtask install_ptest_base   after do_install   before do_package

do_populate_sysroot

The point is most of the time you shouldn't need to do this kind of thing anymore since the introduction of addtask/deltask python functions.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre