|
Boost : |
Subject: Re: [boost] Why Boost.Build?
From: Artyom (artyomtnk_at_[hidden])
Date: 2011-03-26 17:03:45
> >
> > Is there a reason why Boost uses Boost.Jam/Boost.Build for reasons other
>than tradition?
>
>
> Boost.Build works great for those around here caring enough to maintain a
>build system for boost.
In other words it work for thous who:
1. Maintain the system
2. Already has BBv2 support (existing Boost.Lobraries).
> Also it seams to work well enough that a new build system is not a top
>priority for people willing
> to do something about it. That said I think the fact that it is not as common
>and well known as
> some alternatives, and that it is missing some features people are expecting
>causes people to ask for CMake.
>
If fact BBv2 is total nightmare.
It took me 3 work days to make unit-tests work for Boost.Locale
using BBv2 and I had to add a workaround changing the test
sources itself.
1. Documentation is just missing.
2. Half of functionality Boost.Locale uses for build is undocumented
and works only because it was originally written by Vladimir Prus.
And this is by-the-way after several patches applied to it in trunk.
3. Simple tasks that every normal build system supports undocumented
and unclear (search library for example)
BBv2 works for Boost because it exists for many years. But still
every time people ask for replacement.
> > Does it have advantages over other build systems, in particular CMake
> > (which I consider to be its main competitor)?
>
> CMake is not a build system. CMake is a meta build system tool that takes
> a platform independent meta description of a build system and generate your
> platform specific build systems based on it.
In fact CMake is full featured and mature build system that provides
what build system should, it does not matter if it creates makefiles
or runs the compiler by itself, the fact is that it works, well documented
and full-featured.
It is not perfect but it is much easier and transparent to use in comparison
with BB.
To make it more clear:
How many big projects use CMake... Numerous including famous ones like KDE
How many big projects use Boost.Build. Hmmmm... One - Boost.
> > Are there many people/projects who use Boost.Jam/Boost.Build outside of
>Boost?
>
> I have no idea, but there are some that enjoy its features - yes.
>
Almost nobody... And many-many complain about it.
> > These questions are asked purely out of curiosity due to my ignorance of
> > Boost.Jam/Boost.Build, not because I have an axe to grind.
>
> In my opinion, I would like to see efforts to make boost build
> generate CMake scripts and/or visa versa.
>
I hope someday BB would be replaced with CMake, but as everything
else it requires time and effort (=money) so BBv2 still lives.
But to be honest poor guys thous who would try to make complex
builds with BBv2.
I understand that BBv2 has its strong side but as a tool
that was developed for boost and not for wide range of
project it is very limited for everything that goes outside
the box, and even when it supports required features
there is no documentation exists as every Boost sub-project
implemented this by consulting on mailing lists.
So no normal and usable documentation exists.
Please don't take me wrong. I understand that is it much
easier to criticize the system then provide a solution,
but as time passes and more libraries go into Boost
and as libraries become more complicated, the requirements
from BB become higher... And to be honest I don't know
if anybody but Vladimir Prus knows how to solve them.
And he does not always have a time to help.
Artyom
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk