[Development] Proposing CMake as build tool for Qt 6
Konstantin Tokarev
annulen at yandex.ru
Mon Jun 17 11:52:03 CEST 2019
17.06.2019, 12:48, "Mark De Wit" <mark.dewit at iesve.com>:
>> -----Original Message-----
>> From: Development <development-bounces at qt-project.org> On Behalf Of
>> Konstantin Tokarev
>> Sent: 06 June 2019 14:30
>> To: Simon Hausmann <simon.hausmann at qt.io>; Bogdan Vatra
>> <bogdan.vatra at kdab.com>; development at qt-project.org
>> Subject: Re: [Development] Proposing CMake as build tool for Qt 6
>>
>> 06.06.2019, 16:25, "Simon Hausmann" <simon.hausmann at qt.io>:
>> > Hi,
>> >
>> > Regarding PCH, it seems that right now it would be easiest to include
>> something like https://github.com/sakra/cotire . Patches are welcome to
>> integrate this or alternatively work with upstream CMake for a built-in
>> solution.
>>
>> Yet another alternative is https://github.com/larsch/cmake-precompiled-
>> header/blob/master/PrecompiledHeader.cmake
>> which is not so monstrous as cotire
>
> I have used Cotire until recently and would caution against it. The library at its core is a clever idea but its implementation caused a lot of build instability for us. Its current version doesn't work on MSVC with CMake > 3.12, also fails on Mac with AppleClang 8.0 (bad command line parameter). It appears to be unmaintained as my bug reports have gone completely unanswered / not even acknowledged.
>
> In the end I wrote my own pch script that works ok for our scenario. MSVC support is pretty trivial, gcc/clang more awkward because their pch compilation is a separate build step. My script did include some ideas from larsch github repo linked above, but I don't like his approach of injecting build flags into the clang/gcc pch stage (it didn't work for me, I ended up missing critical flags).
>
> I used some ideas from cotire to generate a list of includes to seed each module PCH header file, but maintain updates manually (like MSVC stdafx.h/pch.h approach). I'm sure pch header generation could be automated too...
I think that automatic generation of PCH is a bad idea, leading to wasting build time.
--
Regards,
Konstantin
More information about the Development
mailing list