Developing with ENABLE_FINAL build speed

Peter Kümmel syntheticpp at gmx.net
Tue Mar 27 23:04:56 CEST 2007


Alexander Neundorf wrote:
> Hi Peter,
> 
> On Tuesday 27 March 2007 07:45, Peter Kümmel wrote:
>> When working on KDE one mostly does not work
>> on all projects and files at the same time,
>> which means these files will not be touched,
>> and they could be build with the
>> KDE4_ENABLE_FINAL flag.
>>
>> The problem using KDE4_ENABLE_FINAL is that
>> the projects with the touched files have to
>> rebuild completely on each change.
>> (With KDE4_ENABLE_FINAL a file is generated
>> which includes all cpp files.)
>>
>> The idea of attached patch is to manually
>> exclude some files from the generated
>> all-in-one file.
>>
>> So it is possible to a build with a speedup
>> of factor 3 to 4 and to work on some files
>> without waiting ages on each change, best
>> of both worlds.
>>
>> How it works:
>> the new macro KDE4_CREATE_MERGED_FILES creates
>> two files, one file which contains all untouched
>> files and one all touched. By default the file
>> with the touched files is 'empty', no code is
>> included (like using KDE4_ENABLE_FINAL).
>>
>> Moving one file from the const to the touched file
>> works by commenting out a macro definition and a
>> include (because the dependency scan of cmake is
>> macro insensible, or I'm wrong?).
> 
> sorry, but managing these sets of files manually is nothing I want to have in 
> the repository.
> So while a nice idea, please don't commit.

I just wanna be sure you understand it correct:

nothing has to be manually managed in the repository, only
when a developer don't wanna compile the complete project
when one file has changed he edits the generated file
in his local build tree.

Cheers,
Peter

> 
> Thanks
> Alex



More information about the Kde-buildsystem mailing list