Boost logo

Boost-Build :

Subject: Re: [Boost-build] Confused with conditional rule
From: Dmitry Timoshenko (dimentiy2k_at_[hidden])
Date: 2011-09-23 07:02:20


Thank you for the answer and your time.

So, as I realized the right solution may look like this?

rule use-complex-xml-properties ( properties * )
{
    if --use-complex-xml in [ modules.peek : ARGV ] ||
      <define>UNICOMM_USE_COMPLEX_XML in $(properties)
    {
      return <library>/smart//smart_data <define>UNICOMM_USE_COMPLEX_XML ;
    }
}

> Dmitry,
>
> The evaluation of conditional requirements is done iteratively, until
> nothing changes. On the first pass, your rule returns<define>UNICOMM_USE_COMPLEX_XML.
> On the second pass, it sees the define is already there and does not add such
> define. Boost.Build interprets it as if the rule has changed it's mind, and the
> define should not really be there and makes another path, until it hits a limit
> on the number of passes. Can you try to removing:
>
> if !<define>UNICOMM_USE_COMPLEX_XML in $(properties)
>
> ?
>


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