Boost logo

Boost-Build :

Subject: Re: [Boost-build] Problem with Intel compiler and pch support
From: Vladimir Prus (ghost_at_[hidden])
Date: 2008-10-26 13:33:10

On Sunday 26 October 2008 13:19:46 John Maddock wrote:
> Vladimir Prus wrote:
> >>> * Intel changes the name of the pch file to have a ".pchi" file
> >>> extension so dependency checking is broken and the pch gets
> >>> regenerated every time bjam is run, which in turn causes the whole
> >>> project to rebuild :-(
> >>
> >> Does adding:
> >>
> >> type.set-generated-target-suffix PCH : <toolset>intel
> >> <target-os>windows : pchi ;
> >>
> >> to intel-win.jam fixes this problem?
> Almost.... unfortunately it appears that regardless of whatever name you
> specify for the pch file Intel appends an "i" to the name, so now it
> generates a file with the .pchii extension and so dependency checking still
> fails :-(

How nice. I presume, next version of compiler is going to just generate a random
name :-/

> >>> * Intel doesn't support the -Yl option, so you get a warning
> >>> emitted when building the pch
> >>
> >> Can you copy-paste the compile-c-c++-pch and compile-c-c++-pch-s
> >> actions from msvc.jam to intel-win.jam and remove the -Yl option?
> Hmm, I put those at the end of the intel-win.jam file, and they appear to
> not get called as I'm still seeing the warning?
> Ah, adding the get-rspline and compile.c++.pch rules as well does cause the
> overrided actions to get called, but with apparently invalid arguments
> because the pch file no longer compiles: the generated .cpp file contains
> just
> #include
> with no file name specified.
> Any ideas?

Please try the attached. The reason for the empty file is that those copy-pasted rules
also use a local variable in msvc.jam -- .escaped-double-quote -- which was not copy
pasted. Yes, I know that this kind of 'inheriting' toolset definitions is a mess.
We will do better in Python.

- Volodya

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at