Boost logo

Boost-Build :

Subject: Re: [Boost-build] BUMPITTY BUMP: [git] genrating forward headers
From: Dave Abrahams (dave_at_[hidden])
Date: 2013-08-21 22:12:15


on Tue Aug 20 2013, Bjørn Roald <bjorn-AT-4roald.org> wrote:

> On 08/21/2013 06:24 AM, Dave Abrahams wrote:
>
>> Okay, thanks for replying. Can one of you explain the problem that needs
>> to be solved so that perhaps someone else can solve it?
>
> I think this thread mostly contain what is needed starting with
> Stevens post 08/01/2013.

Perhaps, but these posts assume a great deal of background that I don't
have. I need details filled in, please.
For instance, in that post Steven says:

> I've applied the Boost.Build changes.

Applied them where? What do these changes do?

> I don't want to apply the changes to Boost proper in svn, since it'll
> break without the git layout.
>
> Here are the changes that need to happen in git:

What does he mean by "need to happen in git?" We are not making any
git-specific commits.

> - Use the original boost-root patch (i.e. no <dependency>)

Sorry, which patch is that?

> - 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?

> - Add <implicit-dependency>/boost//headers to all library and test
> targets.

I /think/ I understand what that means.

> - Change the header install glob to search the correct include
> directories

I have no idea what that means. Please explain.

> The fact that we need to disable everything that is specific for the
> modularized layout when building in the monolithic layout complicates
> the process of proceeding.

Huh; from what I'm reading here it seems like maybe it could be done
with a few project-wide bjam variables. Something like:

  if $(BOOST_SVNLAYOUT)
  {
    BOOST_HEADER_DEPENDENCY = boost//headers ;
  }
  else
  {
    BOOST_HEADER_DEPENDENCY = <implicit-dependency>boost//headers ;
  }

then replace uses of "boost//headers" with "$(BOOST_HEADER_DEPENDENCY)".
Is the problem more complicated than I'm guessing?

> I imagine that some test may be used as a config step that allow new
> or changed rules to be conditioned or targets to be disabled.

Sorry, I don't know what that means.

> There are changes that may need to be done as changes in library
> specific jam files, these seem to be very few and could probably be
> modified so they work in both layouts.

Can you be specific about what changes you mean?

> I _may_ be able to spend some time this weekend, but no
> promise. Nevertheless, I really need advice as to best way to proceed
> as my b2 hacking is not even close to being based on b2 knowledge.

I'm happy to help you with the b2 core language, but I've been out of
the loop on b2 for so long that even there I probably shouldn't be
considered an authority. Volodya is really the guy who knows, and since
he has offered to help I suggest you ask questions generously ;-)

-- 
Dave Abrahams

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