Boost logo

Boost-Build :

From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2006-07-13 01:51:48


Vladimir Prus wrote:
> On Thursday 13 July 2006 03:19, David Abrahams wrote:
>> Vladimir Prus <ghost_at_[hidden]> writes:
>>> On Wednesday 12 July 2006 13:38, John Maddock wrote:
>>>> There are quite a few TR1 tests that are failing with sunpro, that
>>>> appear to be an include path problem. I believe this was working OK
>>>> with bbv1, but the include paths appear to be coming out in the wrong
>>>> order with the current bbv2.
>>>>
>>>> A typical list of errors here: http://tinyurl.com/pcwf5 suggests that
>>>> the "real" version of <memory> is getting included rather than the Tr1
>>>> version. The command line shows that the TR1 headers are in the path,
>>>> but *after* the Boost include path, and while I'm not completely sure, I
>>>> believe this is the problem (I've seen issues like this before, but
>>>> they're really hard to diagnose without spending way too much time
>>>> studying pre-processor outputs). So... anyone any ideas why the toolset
>>>> is injecting the boost path ahead of other <include> directives?
>>> Hi John,
>>> as far as Boost.Build V2 is concerned, boost include directory and TR1
>>> include directory as the same, they are both specified using <include>
>>> feature, and no specific order is guaranteed.
>>>
>>> I think V1 has <sysinclude>, but I never seen any explanation how it's
>>> different from <include>. Probably <sysinclude> appear before <include>
>>> and that's making it working in V1.
>> <sysinclude> is designed to search angle-bracket includes first.
>
> Sorry, can you clarify? Are paths for "" and <> includes complately separate,
> wtih <include> specifying "" paths and <sysinclude> specifying <> paths?

Yes. In BBv1 <sysinclude> paths get added to a separate variable than
<include> paths. For some toolsets the two get translated to "-I$(HRDS)
-I$(SYSHDRS)", for others there are special options for each kind. So I
guess I was wrong, now that I looked at the gcc-tools.jam of BBv1. User
includes ("") are searched for before system include (<>). The full
sequence is:

-I"$(HDRS)" -I$(_)"$(STDHDRS)" -I$(_)"$(SYSHDRS)"

STDHDRS are the paths for the standard library includes, for example the
  STLport paths.

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo

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