Boost logo

Boost-Build :

From: Ryan Gallagher (ryan.gallagher_at_[hidden])
Date: 2005-10-07 00:34:57


Hi Reece, thanks for the reply.

Reece Dunn <msclrhd <at> hotmail.com> writes:

> As far as I am aware, you can use the <tag> rule anywhere, so it sholud be
> possible to add it to your top-level project, a sub-project, or a specific
> target. You can even create your own name generator :).

I "discovered" the <tag> rule by looking at some of the bb.v2 files for the
boost libraries. They use the tag rule defined in $(BOOST_ROOT)/Jamfile.v2.
However, it looks like its really based on the stage.rename rule (although
it doesn't seem to be decided whether to include the library version or not).

>
> Is creating a <tag> rule/name generator in the docs? If not, it should be.

I didn't see anything in the v2 docs that shipped with Boost 1.33.0. I think
there is documentation in the v1 docs though, but I'm not sure how well it
applies.

>
> >Also, from playing around a bit I found a couple little issues, but perhaps
> >these are only because I'm new to bbuild v2 and jam.
> >
> >1) I wasn't able to get the <include>.. to work without adding the
> >-I"$(INCLUDE)" options to the command lines in msvc.jam:274,278. Is there
> >something I'm missing that occurs in the response files?
>
> Use INCLUDES instead :). (Note the "S" on the end).
Yes typo in my message, but not in my .jam change. =)

> <include> should get
> mapped by the
>
> flags msvc.compile INCLUDES : <include> ; # or something like this
>
Yes, this is what I saw in msvc.jam.

> which are added to the RSP files. Check the RSP files. Try deleting the RSP
> files and trying again (currently, if a build fails, RSP files aren't
> correctly regenerated if you change project settings).
>
I'll take a look into this when I get a chance. Here's what I saw though:

msvc.jam : 276
actions compile.c++ bind RSP
{
$(.CC) /Zm800 -nologo -TP -U$(UNDEFS) $(CFLAGS) $(C++FLAGS) $(USER_CFLAGS)
@"$(RSP:W)" -c -Fo"$(<[1]:W)" && $(RM) "$(RSP)"
}

After the <include>.. seemed to fail to work for me I looked here and at
how the flags were set. $(INCLUDES) seemed to be missing so I added it
and it then worked. I have to admit that I don't yet fully understand the
above jam code. I'll try to investigate this further (and learn a little
more jam) this weekend. I'm guessing that it's something that I'm missing.
I may even export the cvs head in case any of this has changed already.

> Also, is this the requirements or usage-requirements version of <include>..?

Well, I didn't get so far as to test the usage-requirements yet, so...

>
> - Reece

Thanks again.

-Ryan

 


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