Boost logo

Boost-Build :

From: Ray Lambert (codemonkey_at_[hidden])
Date: 2007-08-08 12:02:59


Rene Rivera wrote:
> Ray Lambert wrote:
>> Hi,
>>
>> Hope this isn't too stoopid of a question...
>>
>> I just started using boost.build on win32 (coming from Linux) and I've
>> encountered something unexpected.
>
> Which version of Boost.Build? I ask because it seems you are using Boost
> 1.33.1 below.

Yes, that's correct.

>> It appears that cygwin installs the boost headers in a directory called
>> "/usr/include/boost-VERSION/" (presently, "/usr/include/boost-1_33_1/"
>> for me).
>>
>> On Linux (FC6), the boost headers are installed in
>> "/usr/include/boost/". (No, it's not a symlink.)
>
> Yea, that would be the Redhat packagers. If you build+install manually
> they would end up in the same place as you observe for Cygwin.

Hmmm.... seems to me that the Redhat way is better... ?

>> So, of course, includes like
>>
>> #define <boost/shared_ptr.h>
>>
>> in my source cannot be found.
>>
>> I have temporarily fixed the problem in user-config.jam by adding:
>>
>> <cxxflags>-Id:\cygwin\usr\include\boost-1_33_1
>>
>> This seems fairly nasty to me though, because now everyone on the
>> project has to know and/or remember to update user-config.jam whenever
>> boost is updated.
>>
>> Is there a better way to handle this situation (in boost.build)?
>
> Add:
>
> <target-os>cygwin:<include>/usr/include/boost-1_33_1
>
> To your project targets, either as a project requirement or to selected
> targets as needed. I'm assuming you are using the latest Boost.Build v2
> code for this. If you aren't please answer my first question and we can
> give you a more precise answer.

Thanks, that worked very well. It still has to be manually updated but at
least now it only needs to be updated in one place (and committed).

I had to change the command though to <target-os>windows and to use a full
windows path. I guess I'm using a somewhat mixed environment; I'm
building with <target-os>windows but using cygwin's gcc (which is the only
gcc I have installed). This is the final command that I used (in
Jamroot):

  project
      : requirements
          <target-os>windows:<include>d:/cygwin/usr/include/boost-1_33_1
          <target-os>linux:<library>rt
      ;

(The last requirement is for my linux builds, of course.)

Thanks,

~ray


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