Boost logo

Boost-Build :

Subject: [Boost-build] ALWAYS not working inside if block
From: Edward Mitchell (erm410_at_[hidden])
Date: 2014-10-11 23:37:09


I am trying to update a target based on some external condition and have
encountered some interesting behavior. Running

rule my-rule ( targets + : sources * : properties * )
{
...
     ALWAYS $(targets) ;
...
}

leads to all targets being updated, as one would expect. However

rule my-rule ( targets + : sources * : properties * )
{
...
     # Update if my-condition is true or the target does not exist
     if my-condition {
         ECHO "got here" ;
         ALWAYS $(targets) ;
     } else {
         ECHO "not updating" ;
         NOUPDATE $(targets) ;
...
}

outputs "got here" or "not updating" as appropriate, but the targets are
updated only if my-condition is false and the target is missing, i.e.
the else block is behaving as expected, but the if block seems to be a
no-op. Has anyone else encountered this? Or is there a better way to
achieve what I am trying to do?

Thanks,
Ted


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk