Am 16.04.2010 um 18:14 schrieb Kevin Ollivier:
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.
Hi Kevin,
I think that solution could work, though when reading through the
other mails, especially Maciejs mail regarding the generated-source
files, this solution probably is just too simple.
I also take back my proposal, I didn't have certain things in mind
when writing it, especially not the generated sources..
We do need something more sophisticated.
Have a nice day,
Niko
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev