[webkit-dev] [webkit meeting notes] build systems

Maciej Stachowiak mjs at apple.com
Fri Apr 16 15:34:15 PDT 2010


On Apr 16, 2010, at 8:09 AM, Nikolas Zimmermann wrote:

>
> Am 16.04.2010 um 16:44 schrieb Adam Treat:
>
>> I am very skeptical that it is feasible to write a gyp generator  
>> that would
>> output QMake files.  There is a log of magic in those QMake files.   
>> My sense is
>> that it would not be trivial by any means.
>>
>> Plus, I don't like the idea of a meta-meta generators.  Seems way  
>> to mickey-
>> mouse to me.
>
> Agreed to a certain degree. Using gyp/whatever to generate qmake  
> files, to generate Makefile/Xcode files etc seems akward to me as  
> well.
>
> What we really need to resolve is adding/removing files from  
> compilation, that's the most common
> task that has to be done in 5+ build systems at the moment.

Besides adding, removing and renaming, the other thing that's really  
hard is adding a new generated source rule. Although this is not  
needed as frequently, I think anyone adding a new code generator  
script that has to work across all WebKit ports would have a hellish  
time of it right now.

If I had to do it myself, I would just skip any ports that don't use  
DerivedSources.make.


> So I have a new proposal:
>
> 1) Maintain a list of headers/source files to be compiled for ALL  
> platforms (ie. dom/Node.cpp, etc..)
>
> 2) Keep all existing Makefile.am, WebCore.pro etc files as  
> "templates", ie. WebCore.pro.template, with a special
>    variable somewhere marking the $$HEADER_LIST$$ and the $ 
> $SOURCE_LIST$$
>
> 3) Use a script that generates individual build files (eg.  
> WebCore.pro) from WebCore.pro.template, it only
>    needs to insert the file list with the correct syntax in the  
> correct places
>
> 4) Keep all platform specific files to be compiled in the individual  
> build system files (eg. WebCore.pro.template)
>
> I think we'll never find a consensus on a single build system, there  
> are too many different needs. I only care
> about the most repetitive work in order to keep the build system  
> up2date: adding/removing cross-platform files.

I think the proposal above does not handle the derived sources  
problem. It also doesn't handle files that are shared between multiple  
ports but not all ports. It also doesn't provide project files that  
are directly usable by IDEs, on platforms where that is the standard  
way to do development.

Once we start solving problems like that, I suspect we end up with  
something closer in complexity to Gyp or CMake.

Regards,
Maciej


Regards,
Maciej



More information about the webkit-dev mailing list