Boost logo

Boost-Build :

From: Pedro Ferreira (pedro.ferreira_at_[hidden])
Date: 2005-07-06 10:52:14


Hi,

just to reinforce what Jim said. PCHs would be really useful to us, auto PCHs don't work, never used #pragma hdrstop and would be willing to help out if someone comes up with a basic framework.

Regards,

Pedro

----- Original Message -----
From: Jim Tilander
To: jamboost_at_[hidden]
Sent: Wednesday, July 06, 2005 4:24 PM
Subject: Re: [jamboost] Finding out where output files are and changing it + precompiled headers

Vladimir,

The automatic mode in visual studio is basically useless, it's often slower than compiling without a precompiled header. I think MS recommends not to use it at all. The crazy part is that it's the default behaviour if you create a new project with a wizard in visual :) I'll take a look at how to add the precompiled header stuff to msvc.jam, the manual version of it.

I'm also curious, does anyone actually use the #pragma hdrstop? I've never seen any real use for it, but I'm probably missing something here since it seems to spring up...

/j

On 7/6/05, Vladimir Prus <ghost_at_[hidden]> wrote:
Hi Andrey,
Hi Jim,

> > 2. In my compiler flags <cflag> I'd like to reference the output
> > directory (the one we changed in 1). This is for this specific instance
> > for precompiled headers, so the actual flag I want to pass is something
> > like this (but of course I don't know the proper variablenames):
> >
> > <cflag>-Fp$(intermediate_path)/$(project_name).pch
>
> It isn't a good idea to specify cflags manually in jamfile. It's better
> to patch msvc.jam toolset definition file and create features like
>
> <pch>off|use|create|hdrstop
> <pch-header>StdAfx.h
> <pch-db>StdAfx.pch
>
> Also you need to track dependencies correctly: all files with <pch>use
> should depend on StdAfx.pch, and stdafx.cpp should create StdAfx.pch
> output.
>
> Can someone more fluent in bbv2 tell me is this a lot of work?

This PCH thing becomes a common request. Recall that msvc has both "automatic"
pch mode, that requires, IIRC, a single switch, and "manual" mode, that
requires creating PCH once, and then using it from other targets. I recall
I've suggested the following syntax for the manual mode:

pch stl : stl.h :
exe my : my.cpp : <pch>stl ;

I think this should not be too hard to add.

> Also I wonder how other compilers besides msvc implement precompiler
> headers?

borland, como, gcc

> It looks like bcb can use #pragma hdrstop too.

And, BTW, I forgot that #pragma hdrstop does ;-) Gcc does not have it, IIRC.

- Volodya

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build V2: http://boost.org/boost-build2
----------------------------------------------------------------------------
YAHOO! GROUPS LINKS 
a.. Visit your group "jamboost" on the web.
        
b.. To unsubscribe from this group, send an email to:
jamboost-unsubscribe_at_[hidden]
        
c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 
----------------------------------------------------------------------------
------------------------------------------------------------------------------
YAHOO! GROUPS LINKS 
a.. Visit your group "jamboost" on the web.
      
b.. To unsubscribe from this group, send an email to:
jamboost-unsubscribe_at_[hidden]
      
c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 
------------------------------------------------------------------------------
 ------=_NextPart_000_00C5_01C5824B.0F67B4E0 Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2668" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>just to reinforce what Jim said. PCHs would be 
really useful to us, auto PCHs don't work, never used #pragma hdrstop and would 
be willing to help out if someone comes up with a basic framework.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Regards,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Pedro</FONT></DIV>
<DIV>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV 
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
<A title=jim.tilander_at_[hidden] href="mailto:jim.tilander_at_[hidden]">Jim 
Tilander</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=jamboost_at_[hidden] 
href="mailto:jamboost_at_[hidden]">jamboost_at_[hidden]</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, July 06, 2005 4:24 
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [jamboost] Finding out where 
output files are and changing it + precompiled headers</DIV>
<DIV><BR></DIV>Vladimir,<BR><BR>The automatic mode in visual studio is 
basically useless, it's often slower than compiling without a precompiled 
header. I think MS recommends not to use it at all. The crazy part is that 
it's the default behaviour if you create a new project with a wizard in visual 
:) I'll take a look at how to add the precompiled header stuff to msvc.jam, 
the manual version of it.<BR><BR>I'm also curious, does anyone actually use 
the #pragma hdrstop? I've never seen any real use for it, but I'm probably 
missing something here since it seems to spring up...<BR><BR>/j<BR><BR>
<DIV><SPAN class=gmail_quote>On 7/6/05, <B class=gmail_sendername>Vladimir 
Prus</B> &lt;<A href="mailto:ghost_at_[hidden]">ghost_at_[hidden]</A>&gt; 
wrote:</SPAN>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><TT>Hi 
Andrey,<BR>Hi Jim,<SPAN class=q><BR><BR>&gt; &gt; 2. In my compiler flags 
&lt;cflag&gt; I'd like to reference the output<BR>&gt; &gt; directory (the 
one we changed in 1). This is for this specific instance<BR>&gt; &gt; for 
precompiled headers, so the actual flag I want to pass is something<BR>&gt; 
&gt; like this (but of course I don't know the proper 
variablenames):<BR>&gt; &gt;<BR>&gt; &gt; 
&lt;cflag&gt;-Fp$(intermediate_path)/$(project_name).pch<BR>&gt;<BR>&gt; It 
isn't a good idea to specify cflags manually in jamfile. It's better<BR>&gt; 
to patch msvc.jam toolset definition file and create features 
like<BR>&gt;<BR>&gt; &lt;pch&gt;off|use|create|hdrstop<BR>&gt; 
&lt;pch-header&gt;StdAfx.h<BR>&gt; &lt;pch-db&gt;StdAfx.pch<BR>&gt;<BR>&gt; 
Also you need to track dependencies correctly: all files with 
&lt;pch&gt;use<BR>&gt; should depend on StdAfx.pch, and stdafx.cpp should 
create StdAfx.pch<BR>&gt; output.<BR>&gt;<BR>&gt; Can someone more fluent in 
bbv2 tell me is this a lot of work?<BR><BR></SPAN>This PCH thing becomes a 
common request. Recall that msvc has both "automatic" <BR>pch mode, that 
requires, IIRC, a single switch, and "manual" mode, that <BR>requires 
creating PCH once, and then using it from other targets. I recall <BR>I've 
suggested the following syntax for the manual mode:<BR><BR>&nbsp; pch stl : 
stl.h :<BR>&nbsp; exe my : my.cpp : &lt;pch&gt;stl ;<BR><BR>I think this 
should not be too hard to add. <SPAN class=q><BR><BR>&gt; Also I wonder how 
other compilers besides msvc implement precompiler<BR>&gt; headers? 
<BR><BR></SPAN>borland, como, gcc<SPAN class=q><BR><BR>&gt; It looks like 
bcb can use #pragma hdrstop too. <BR><BR></SPAN>And, BTW, I forgot that 
#pragma hdrstop does ;-) Gcc does not have it, IIRC.<BR><BR>- 
Volodya<BR><BR>-- <BR><SPAN class=sg>Vladimir Prus<BR><A 
onclick="return top.js.OpenExtLink(window,event,this)" 
href="http://vladimir_prus.blogspot.com" 
target=_blank>http://vladimir_prus.blogspot.com><BR>Boost.Build V2: <A 
onclick="return top.js.OpenExtLink(window,event,this)" 
href="http://boost.org/boost-build2" 
target=_blank>http://boost.org/boost-build2><BR></SPAN></TT>
<DIV><SPAN class=e id=q_104ecaf340b43316_9><BR>
<DIV style="WIDTH: 500px; COLOR: rgb(144,144,144); TEXT-ALIGN: center">
<HR style="WIDTH: 500px; BORDER-BOTTOM: 1px; TEXT-ALIGN: left">
<TT>YAHOO! GROUPS LINKS</TT> </DIV><BR>
<UL><TT>
<LI type=square>&nbsp;Visit your group "<A 
onclick="return top.js.OpenExtLink(window,event,this)" 
href="http://groups.yahoo.com/group/jamboost" target=_blank>jamboost</A>" 
on the web.<BR>&nbsp;</TT> <TT>
<LI type=square>&nbsp;To unsubscribe from this group, send an email 
to:<BR>&nbsp;<A onclick="return top.js.OpenExtLink(window,event,this)" 
href="mailto:jamboost-unsubscribe_at_[hidden]?subject=Unsubscribe" 
target=_blank> jamboost-unsubscribe_at_[hidden]</A><BR>&nbsp;</TT> 
<TT>
<LI type=square>&nbsp;Your use of Yahoo! Groups is subject to the <A 
onclick="return top.js.OpenExtLink(window,event,this)" 
href="http://docs.yahoo.com/info/terms/" target=_blank>Yahoo! Terms of 
Service</A>.</TT> </LI></UL><BR>
<DIV style="WIDTH: 500px; COLOR: rgb(144,144,144); TEXT-ALIGN: center">
<HR style="WIDTH: 500px; BORDER-BOTTOM: 1px; TEXT-ALIGN: left">
</DIV></SPAN></DIV></BLOCKQUOTE></DIV><BR><?---- LSpots keywords ?><?---- HM ADS ?></BODY></HTML>
 ------=_NextPart_000_00C5_01C5824B.0F67B4E0-- 

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