<p>However, it is well-known technique called Unity Build and has some side, effects both useful (more room for optimizer) and not (always full rebuild). You may google a bit more about it. </p>
<p>On Apr 27, 2011 12:01 AM, "Alexander Neundorf" <<a href="mailto:a.neundorf-work@gmx.net">a.neundorf-work@gmx.net</a>> wrote:<br type="attribution">> On Tuesday 26 April 2011, Martin Nielsen wrote:<br>
>> Hi,<br>>><br>>> I have been asked to look into the possibilities of compiling multiple<br>>> files in one invocation of the compiler like:<br>>><br>>> armcc.exe ... file1.c file2.c ... fileN.c -o mylib.lib<br>
>><br>>> The cross compiler we are using requires a license in order to compile the<br>>> file. It is a network floating license mechanism and the majority of the<br>>> time it take to build the code is spent on acquiring the license. Parallel<br>
>> build is sadly not an option either since it just requests multiple<br>>> licenses and we quickly run out.<br>>><br>>> I was wondering if CMake could be directed to somehow do this? or it would<br>
>> break some dependency between the source files and the generation of the<br>>> library.<br>>><br>>> I suspect it isn't possible but would like to confirm this or explore other<br>>> ideas on how to get around this problem.<br>
> <br>> In KDE we have an option KDE4_ENABLE_FINAL.<br>> If this is set to TRUE, then for each binary a cpp-file is generated, which <br>> has #include "file.cpp" statements for each of the original source files, and <br>
> then this one file, which then contains basically the whole source code, is <br>> compiled at once.<br>> <br>> You can search for "enable_final" e.g. here:<br>> <a href="http://websvn.kde.org/branches/KDE/4.5/kdelibs/cmake/modules/KDE4Macros.cmake?revision=1143427&view=markup">http://websvn.kde.org/branches/KDE/4.5/kdelibs/cmake/modules/KDE4Macros.cmake?revision=1143427&view=markup</a><br>
> <br>> This is transparent for the user.<br>> If he uses kde4_add_executable(foo a.cpp b.cpp main.cpp)<br>> and turns the option on, then the all-in-one file is created automatically and <br>> built.<br>> <br>
> Alex<br>> _______________________________________________<br>> Powered by <a href="http://www.kitware.com">www.kitware.com</a><br>> <br>> Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br>
> <br>> Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ">http://www.cmake.org/Wiki/CMake_FAQ</a><br>> <br>> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://www.cmake.org/mailman/listinfo/cmake">http://www.cmake.org/mailman/listinfo/cmake</a><br></p>