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

Nikolas Zimmermann zimmermann at physik.rwth-aachen.de
Fri Apr 16 08:09:22 PDT 2010

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. 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 $ 

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.

Of course this is some kind of meta-meta build system, but we could  
also agree to move the "template" files in a WebCore/build-templates
folder and run a "update-project-files" script after adding/remove  
files, that generates the build files, like WebCore.pro and commit them.
This way only the person who added/removed a file from build would  
need to run that script, instead of every one, this would effectively
hide the "meta-meta" build system.

If we find an acceptable solution for just adding/removing cross- 
platform buildable files that it would already make me happy :-)

Looking for comments!

More information about the webkit-dev mailing list