Boost logo

Boost-Build :

From: Joao Abecasis (jpabecasis_at_[hidden])
Date: 2005-03-16 13:40:21


Vladimir Prus wrote:
> On Tuesday 15 March 2005 23:01, Joao Abecasis wrote:
>
>
>>>There are two alternatives:
>>>
>>>1. You always build quickbook with the default toolset (which is the
>>>first declared one)
>>
>>I used to sympathize with this option because it gave the toolset more
>>control, like setting <variant>release by default. However, it seems
>>that this approach doesn't live up to the user's expectations.
>>
>>
>>>2. You build quickbook with whatever toolset user has specified on the
>>>command line. Note that if a user has not specified any toolset on the
>>>command line, everything will be built with the default one (again, the
>>>first declared).
>>
>>I was trying to avoid generating quickbook multiple times if multiple
>>toolsets were provided on the command line... but now I see boostbook
>>itself already generates lots of errors in this scenario, so I can just
>>forget about it.
>
>
> Do you mean that if quickbook worked for all compilers and for all
settings,
> you would retain the current behaviour of quickbook.jam?

Actually I was considering the possibility of having docs built
alongside the rest of a library. Quickbook itselft *should* already work
with different compilers/settings...

Consider library foo that has some exe targets alongside quickbook or
boostbook docs. The corresponding Jamfile might read:

exe foo_exe : foo.cpp ;
boostbook foo_docs : foo.qbk ;

Now, I want to build foo with multiple toolsets/configurations so I try:

bjam (--v2) gcc intel release debug

What I get is that boostbook blows trying to generate duplicate targets:

error: Duplicate name of actual target: <phtml>HTML.manifest

Ideally docs would be "toolset-agnostic". Still quickbook is in a
peculiar position because its executable certainly isn't compiler-agnostic.

What I would like to happen here would be for the quickbook executable
to be built once with a "default" toolset (from the above command-line
I'd expect it to be gcc-release). And the docs built only once using that.

Current best practice is for docs to be kept in a separate Jamfile that
is built with no toolset:

bjam (--v2) html pdf

or with a single toolset (since the last fix)

bjam (--v2) gcc release html

>>... patience ...
>>... deleting some lines from the quickbook toolset ...
>>
>>Done! More power to the user!
>
>
> I still think that generally building a tool once with default toolset is
> good. However in the specific case of quickbook I just trust your
judgement.

My decision was not tied to quickbook knowledge. I also think the
default toolset is a good idea. I just think it seems natural to
override the "default" from the command line.

Btw, how can I define a default toolset and mode (release/debug) other
than changing the order in which toolsets are declared?

Best,

João

 


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