[webkit-dev] [webkit meeting notes] build systems
Nikolas Zimmermann
zimmermann at physik.rwth-aachen.de
Fri Apr 16 22:42:09 PDT 2010
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
More information about the webkit-dev
mailing list