Boost logo

Boost-Build :

Subject: Re: [Boost-build] Very slow Visual Studio 2012 builds
From: Nogradi, Chris (Chris.Nogradi_at_[hidden])
Date: 2013-11-05 08:21:31


On Monday, November 04, 2013 4:13 PM, Juraj Ivancic wrote:
> On 4.11.2013. 22:01, Nogradi, Chris wrote:
> >
> > Well I had originally implemented this wrong as well and Steve
> > corrected me. I think you REALLY want to create a batch file with the
> > environment variables set to deal with command line size limits and
> > make it a dependency of all the compile/assembly/link/...
> > targets.
>
> I don't see why I would want to create that batch file. What command line
> size limits? Jam action is like a script, not a (single) command.
>

On Monday, November 04, 2013 3:50 PM, Steven Watanabe wrote:
> The command line limits may not matter.
> Boost.Build writes the whole command
> out into a temporary batch script anyway, unless you explicitly set
> JAMSHELL to "%".

Ah I stand corrected. I guess I supposed that since there is support for response files there must have been a command line limit issue but this must be to circumvent executables that have command line limitations.

> > This also makes incrementals a bit faster since the batch
> > file is created once and then used on every subsequent build. I
> > originally did this but have not had time to fix it to do what Steve
> > suggested (also it is going to take me a while to figure it out since
> > I am not an expert):
>
> With my current approach, setup scripts are executed only once, and any
> environment side-effects they produce are saved by boost build.
> Consequently, I call a bunch of SETs directly instead of calling a batch
> file containing exactly those SETs. This can only be faster.
>

Hmm maybe I am missing something but it looks like every time you invoke bjam/b2, msvc.init will invoke your new code which calls 2 sets and the msvc batch file for every architecture/cpu and produces sets of environment variables. Caching these variables to batch files would allow the variables to not have to be calculated during every invocation (better for incremental builds). But again I may be completely ignorant about what is going on here.

Anyways thanks for making this fix - it will be very helpful for us.

Chris

________________________________

CONFIDENTIALITY NOTICE: This email and any attachments are for the sole use of the intended recipient(s) and contain information that may be confidential and/or legally privileged. If you have received this email in error, please notify the sender by reply email and delete the message. Any disclosure, copying, distribution or use of this communication (including attachments) by someone other than the intended recipient is prohibited. Thank you.


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