Boost logo

Boost-Build :

Subject: Re: [Boost-build] Building OpenMP targets
From: Juraj Ivanèiæ (juraj.ivancic_at_[hidden])
Date: 2013-08-05 08:39:26


On 3.8.2013. 2:41, Pascal Germroth wrote:

> To prevent building the example on clang I could use
>
> exe example : example.cpp : <toolset>gcc ;
> exe example : example.cpp : <toolset>intel ;

You could also use

     exe example : example.cpp : <toolset>clang:<build>no ;

> Is there a way to define/use OpenMP as a feature, so that my Jamfile
> wouldn't need to name every toolset but could just require OpenMP for a
> target, which would magically set the flag on a supporting compiler or
> ignore the target on an unsupported compiler? So that I could write:

Try this:

     import feature ;
     feature.feature openmp : yes : optional composite propagated ;

     feature.compose <openmp>yes :
         <toolset>gcc:<cxxflags>-fopenmp
         <toolset>gcc:<linkflags>-fopenmp
         <toolset>intel:<cxxflags>-openmp
         <toolset>intel:<linkflags>-openmp
         <toolset>clang:<build>no
         <toolset>msvc: ...
         ...
     ;

     project : requirements ... ;
     exe example : example.cpp : <openmp>yes ;

> Supporting OpenMP in the global toolset definitions could benefit other
> projects, too, would this be hard to implement? Where could I look for a
> starting point?

If you want to add a support module for openmp have a look at how
jamfiles in the contrib directory are implemented.


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