Boost logo

Boost-Build :

Subject: [Boost-build] How do I pass cxxflags to Boost libraries from within my jamfile?
From: Foster Brereton (fosterb+boost_at_[hidden])
Date: 2013-10-28 19:01:46


(Repeating a question I posted on Stackoverflow:
http://stackoverflow.com/questions/19599194/)

I have a project with some requirements, one of which is to set the c++11
compiler/linker flags:

jamroot.jam:

project
    : requirements
      <toolset>clang:<cxxflags>"-stdlib=libc++ -std=c++11"
      <toolset>clang:<linkflags>"-lc++"
      # ... etc
    ;

lib mylibrary
    : #sources
        [ glob source/*.cpp ]
        /boost/filesystem
        /boost/system
        /boost/thread//boost_thread
    ;

The library-specific sources are being compiled with the necessary c++11 flags,
however the Boost libraries mentioned do not. This is causing no end of binary
incompatibilities and linker errors.

I do not want to specify the cxxflags explicitly in either the user-config or
the command line. I would like to make sure the jamroot/jamfiles are all that is
necessary to build the project properly.

How do I "pass in" the desired cxxflags to the dependent Boost libraries?

Also: I recently tried using an alias to accomplish my goal. From the docs:

    Another use of the alias rule is to change build properties. For example, if
    you want to use link statically to the Boost Threads library, you can write
    the following:

    alias threads : /boost/thread//boost_thread : <link>static ;

However setting this up for boost_filesystem and rebuilding, say, path.cpp still
omits the properties I am trying to build with.

What am I missing?


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