Hi Nikolas,

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. 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.
> 
> 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 :-)

Correct me if I'm wrong, but I thought it would actually be possible to have 
the values for HEADER_LIST and SOURCE_LIST set in a separate file, and that Qt 
and GTK build systems could then just include that file. This way we could 
avoid using templates and such. Just add the included file to the tree (e.g. 
WebCore/sources.inc) and have the Qt and GTK projects include 
WebCore/sources.inc and reference those variables. As I mentioned earlier, I 
actually coded up something using this approach a long time ago back when wx 
was still using Bakefile, but I guess it never caught the attention of projects 
like Qt as I never got any feedback on it. (Or maybe the idea was just so 
obviously flawed somehow. :) Here's the script:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/update-sources-list.py

It would probably not take long at all to have getWebCoreFilesDict pull from a 
gyp project, XCode project, or whatever we wanted to use as the master file 
list that should be updated. 

Thoughts?

Thanks,

Kevin

> Looking for comments!
> Niko
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to