[Development] Announcing moc_combine

Joerg Bornemann joerg.bornemann at qt.io
Tue May 31 20:35:17 CEST 2016


On 31/05/2016 19:42, Thiago Macieira wrote:

>> This feature is nice for source distributions but isn't suitable for
>> code being developed.
>
> We can easily disable it for developer builds.

Yes, please!

> But note that due to rebases and touching central files like qglobal.h or
> qobject.h, everything rebuilds anyway.

This depends on the area and branch you're working on.
I can see how you're affected. ;)

> The best of both worlds would be if:
>   * moc could output more than one file
>   * moc could be run once for however many files needed updating
>   * moc could be given the list of files that have changed, but no others
>
> GNU make helps us for the last option:
>
> $?

The good thing is, nmake also supports $?:
All dependents with a later timestamp than the current target.
[https://msdn.microsoft.com/en-us/library/cbes8ded.aspx]

> I don't know how to implement the first two.

moc could output combined_moc.cpp which includes every moc_XXX.cpp.
The update run of moc then regenerates the single moc_XXX.cpp files.

This still leaves the issue that compilation of combined_moc.cpp will be 
slower for the incremental build case. So I'm not sure it's worth it. 
Turning moc_combine off for developer builds seems OK to me.


BR,

Joerg



More information about the Development mailing list