Boost logo

Boost-Build :

Subject: Re: [Boost-build] Use BB to generate visual studio projects?
From: Konstantin Litvinenko (to.darkangel_at_[hidden])
Date: 2010-04-19 12:44:09


Christian Holmquist пишет:
> 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.

   You do everything right BB is slow compared to make or Visual Studio edit/compile cycle. It TEN
times slow in my environment on no-op build. 1s(VS) over 30s(BB). That killing me, but I need to
build in two OSes and with three different compilers and BB my saver.
   BB slowness is a major reason why I start to develop Hammer. Hammer no-op build is less that a
second so it can be used as make replacement in vim/emacs/any other editor.

> To me, it spends too much time in dependency analysis.

   The problem not in dependency analysis. But Filemonitor output of bjam invocation is a REAL
nightmare. Seams bjam doing to many unnecessary stat's so you may be partially right. When I first
implement #include dependency analysis in Hammer it was real damn SLOW. I rewrite it twice using
totally different approaches before overall pre-build time became less than a second on my big projects.

> 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.
>
> Here's what would be optimal to me
> 1) BB always contains the 'master' project, there are no visible vcproj
> files in the SCM.
> 2) When about to work on some project, generate the vcproj files for
> that project, and optionally for all projects (that needs compilation)
> it depends on.
> 3) When done, submit cpp, hpp and jam files, and throw away the vcproj
> files.

   Heh :) You describe my workflow as it is. But since BB can't generate VS project files I use
Hammer. It do exactly what I need - it generate main and all dependent project so I can work in VS
and use VA and other productivity tools. Yes, I need to maintain BB and Hammer files, but since they
are very close ideologically that not a problem at all.

> (I looked briefly at CMake btw, but it didn't look anyway near as
> compact as BB)

    Yes, I found BB syntax is most compact along with powerful design concepts.


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