Boost logo

Boost-Build :

Subject: Re: [Boost-build] Use BB to generate visual studio projects?
From: Vladimir Prus (ghost_at_[hidden])
Date: 2010-06-29 03:13:07


On Tuesday 20 April 2010 00:52:19 Christian Holmquist wrote:

> > >
> > > > It seems to me that a better approach would be to create Boost.Build
> > add-in
> > > > for
> > > > Visual Studio, so that you can actually interact with Boost.Build
> > project
> > > > description, as opposed to just building things.
> > > >
> > > >
> > > One of the reasons for using the IDE, is that it's significantly faster
> > to
> > > compile with. Running bjam on a project (even with only one .cpp test
> > file)
> > > which depends on a couple of compiled boost libs (serialization, thread,
> > > system), takes very, very long time. I'm probably doing something wrong,
> > and
> > > I actually wonder how people work with bjam in practice. To me, it spends
> > > too much time in dependency analysis.
> > > Another reason for the IDE to know about all my files involved, is to
> > allow
> > > other crucial tools such as Incredibuild and Visual Assist to do their
> > work.
> > > Without them, my efficiency is about zero nowadays.
> >
> > That's why I suggest integration with IDE using a proper plugin. That way:
> >
> > - All of state of build system can be kept in memory, so change in one
> > file can immediately generate the necessary updates
> > - Build system can report back the flags used for any given cpp, making
> > code completion work reliably.
> >
> >
> > Thanks,
> >
> >
> I don't understand your proposal, probably becaues I'm not very fluent in VS
> IDE plugins.
> Do you mean it's possible to add something like 'native' support for jam
> files in the IDE,
> so that the VS 'Solution Browser' is automatically populated by those files
> that BB would use, if it was executed from the command line?
> Or could you elloborate a bit more this idea, thanks.
> Still, I think that jam -> vcproj would be more useful, and probably easier
> to implement (?).

VS has different kind of projects, like C++ project (using their build system)
or C# project. It's possible to add new project type, "Boost.Build project",
in which case commands like "Build", when applied to such project, will directly
invoke Boost.Build -- using a (future) programmatic interface, as opposed to
running bjam directly.

Does this clarify things?

Thanks,

--
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build: http://boost.org/boost-build2

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