Boost logo

Boost-Build :

From: brian_at_[hidden]
Date: 2006-09-14 08:34:17


In order to support prebuilt libs in several variants and for several toolsets,
I have so far used the following approach with success. It isn't what it says
in the user manual AFAICT, so I sorta stumbled onto this, but hey...it worked!

---
lib some_library_gcc
    :
    : <variant>debug:<name>some_library-gcc-d
      <variant>release:<name>some_library-gcc
    ;
lib some_library_msvc
    :
    : <variant>debug:<name>some_library-msvc-d
      <variant>release:<name>some_library-msvc
    ;
alias some_library
    : some_library_gcc
    : <toolset>gcc
    ;
---
... and so on...you get the gist, I'm sure. This with a version of BBv2 that is
about 10 months by now.
Updating to CVS HEAD (as of September 12) this approach fails. It complains
about the rule object(...).__init__ being called an extra argument. Apparently
the parameter "real-name" gets passed both "some_library-gcc-d" and
"some_library_gcc", which is obviously an error.
Instead I have now tried this:
---
lib some_library
   :
   : <toolset>gcc
     <name>some_library-gcc-d <variant>debug
   ;
lib some_library
   :
   : <toolset>gcc
     <name>some_library-gcc <variant>release
   ;
---
...and so forth. However:
---
error: No best alternative for src/dir/some_library
    next alternative: required properties: <threading>multi <toolset>gcc
<variant>debug
        not matched
    next alternative: required properties: <threading>multi <toolset>gcc
<variant>release
        not matched
---
The culprit seems to be the <threading>multi part; if I supply "threading=multi"
on the command line there are no problems. But why is there a requirement for
multithreading on the lib? I get it not.
Of more interest though, is the correct way to declare all these libs. How
should I declare multiple versions of the same prebuilt link-library? What is
the "correct" syntax?
 /Brian

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