Boost logo

Boost-Build :

Subject: Re: [Boost-build] BUMPITTY BUMP: [git] genrating forward headers
From: Bjørn Roald (bjorn_at_[hidden])
Date: 2013-08-23 01:30:07


On 08/22/2013 03:01 PM, Dave Abrahams wrote:

>>>> - Change all uses of boost//headers to
>>>> <implicit-dependency>/boost//headers. <use> <source> and <library> do not
>>>> work correctly for handling generated headers.
>>>> This is the cause of the build problems with
>>>> the original patch.
>>>
>>> Is this a simple search-and-replace, or does it require some specialized
>>> knowledge?
>>>
>>
>> A search and replace won't quite work. e.g.
>>
>> lib A : a.cpp boost//headers ;
>> becomes
>> lib A : a.cpp : <implicit-dependency>/boost//headers ;
>>
>> lib B : b.cpp : <library>/boost//headers ;
>> becomes
>> lib B : b.cpp : <implicit-dependency>/boost//headers ;
>>
>> <implicit-dependency> needs to be in the target requirements.
>
> So, a regexp search. Is there any other relevant prefix other than
> <library>?

as I posted 8/3/2013

br> I did:
br>
br> rgrep -l boost//headers * | xargs sed -i
's%<\(use\|source\|library\)>/boost//headers%<implicit-dependency>/boost//headers%g'
br>
br> which changes 5 build files:
br> libs/geometry/index/example/Jamfile.v2
br> libs/units/test/Jamfile.v2
br> libs/signals2/example/Jamfile.v2
br> libs/numeric/odeint/examples/vexcl/Jamfile.v2
br> tools/regression/build/Jamroot.jam
br>
br> However one build file is a little odd:
br> libs/spirit/example/qi/json/build/Jamfile
br> so I ignore it for now as it is an example.
br>
br> A couple of documentation files are also modified by the sed script,
and that is fine I guess.
br>
br> At this stage I seem to be able to get all build and tests I tried
to work.
br>
br> ./bootstrap.sh
br> export PATH=`pwd`:$PATH
br> b2
br> cd libs/filesystem/build
br> b2
br> cd ../test
br> b2
br> cd ../../../status
br> b2
br>
br> works... well not through with <boost-root>/status tests yet, but it
is purring along...

I guess that test run somehow completed after some long time, but I am
not sure how to check the result as I have lost the shell in a reboot.

I have now, based on examples here, added some a test in Jamroot to set
a variable BOOST_MODULARLAYOUT variable and added some condition test
for that. Hopefully I got this right - I have not tested full builds
and tests.

I attach a patch which is a concatenation of the results from the
following commands:
diff -w > b2modlayout.patch
git submodule foreach git diff -w >> b2modlayout.patch

I do not know how to properly do a project wide create patch/apply with
git super/sub-modules, so this will do for now.

Also: Steven replied that the libs/spirit/example/qi/json/build/Jamfile
should also should be changed to <implicit-dependency>
and moved from the sources to the requirements.

As far as I know that is is what is needed except for the install glob
Steven listed. What am I missing...?

I will do more testing this weekend

-- 
Bjørn



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