|
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> </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> </DIV> <DIV><FONT face=Arial size=2>Regards,</FONT></DIV> <DIV><FONT face=Arial size=2></FONT> </DIV> <DIV><FONT face=Arial size=2>Pedro</FONT></DIV> <DIV> </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> <<A href="mailto:ghost_at_[hidden]">ghost_at_[hidden]</A>> 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>> > 2. In my compiler flags <cflag> I'd like to reference the output<BR>> > directory (the one we changed in 1). This is for this specific instance<BR>> > for precompiled headers, so the actual flag I want to pass is something<BR>> > like this (but of course I don't know the proper variablenames):<BR>> ><BR>> > <cflag>-Fp$(intermediate_path)/$(project_name).pch<BR>><BR>> It isn't a good idea to specify cflags manually in jamfile. It's better<BR>> to patch msvc.jam toolset definition file and create features like<BR>><BR>> <pch>off|use|create|hdrstop<BR>> <pch-header>StdAfx.h<BR>> <pch-db>StdAfx.pch<BR>><BR>> Also you need to track dependencies correctly: all files with <pch>use<BR>> should depend on StdAfx.pch, and stdafx.cpp should create StdAfx.pch<BR>> output.<BR>><BR>> 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> pch stl : stl.h :<BR> exe my : my.cpp : <pch>stl ;<BR><BR>I think this should not be too hard to add. <SPAN class=q><BR><BR>> Also I wonder how other compilers besides msvc implement precompiler<BR>> headers? <BR><BR></SPAN>borland, como, gcc<SPAN class=q><BR><BR>> 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> 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> </TT> <TT> <LI type=square> To unsubscribe from this group, send an email to:<BR> <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> </TT> <TT> <LI type=square> 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