[cmake-developers] RFC: CMake precompiled header support and custom compiler based implementation

Daniel Pfeifer daniel at pfeifer-mail.de
Fri Mar 20 15:40:28 EDT 2015


On Fri, Mar 20, 2015 at 6:13 PM, Brad King <brad.king at kitware.com> wrote:
> On 03/13/2015 08:44 AM, Daniel Pfeifer wrote:
>> I pushed some work to https://github.com/purpleKarrot/CMake/commits/pch
>
> Thanks for working on this.  I'm hoping others will respond because
> I have little experience with PCH.
>
>> target_precompile_headers(bar INTERFACE bar.h)
> [snip]
>> This command is used to set a list of headers "to precompile".
>
> This would say that any target that links to 'bar' would get 'bar.h' as
> a source file to be precompiled for that target's settings.  This makes
> some sense for producing the precompiled header, but what decides what
> precompiled header is *used* by each source file?  IIUC a given compiler
> call may specify at most one precompiled header to use because it is
> actually more like a partially compiled translation unit to be continued
> by each source consuming it.

There is be one header per target that is precompiled and used to
compile all source files of that target.
This header is generated by CMake. It simply #includes all files that
are requested to be precompiled.
In the example above, each target that links to 'bar' will have a
precompiled header that contains the line '#include <bar.h>' among
others.

cheers, Daniel


More information about the cmake-developers mailing list