Boost logo

Boost :

From: Bjørn Roald (bjorn_at_[hidden])
Date: 2005-05-30 13:35:24


"Reece Dunn" wrote:

> What is really needed is a project-generation toolset so you could do
> something like:
>
> bjam release debug msvc-project-7.1
> bjam release eclipse-3.0 # release only project files
>
> And you end up with the requested project/solution files. I will have a go
> at writing such a toolset.
>

There are such tools out there, my employer have some internal tools doing
similat things. TrollTech has a tool called QMake. You can however also
find excelent "properly lisenced" tools for Boost. Check out the Make
Project Creator (MPC) tool used in ACE/TAO ($ACE_ROOT/MPC/...). This tool
is a set of perl scripts which in my mind does an excelent job against MSVC
and GnuMake which I have tested. According to the documentation it supports
many other build tools. Its imput is basically a simple declaration file
like:

// -*- MPC -*-
// Advanced_ch_3.mpc,v 1.4 2004/06/20 19:50:31 ossama Exp

project(*client) : taoexe, portableserver {
  requires += exceptions corba_messaging
  source_files {
    client.cpp
  }
}

project(*server) : taoexe, portableserver {
  requires += exceptions
  source_files {
    server.cpp
  }
}

These files has to be generated by Boost.Build (bjam), then MPC or similar
can be invoked to create the target build/project/solution environment.
MPC uses the input file like the one above, in addition to this there are a
lot of rules that are applied based on task, target, etc. which is part of
the tool or customilization of it.

See attached USAGE file for some more info.

If added dependency on perl is a problem, then at a minimum I suggest using
MPC as a way to get a head start of what needs to be added to bjam. It
would make bjam a lot more interesting :o)

By the way, in my opinion - the most interesting usage of such a tool is not
to build Boost, but to get users up and running on using and modifying
example code.

Good Luck...
Bjørn




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk