[webkit-dev] Build system update
Maciej Stachowiak
mjs at apple.com
Fri Mar 25 10:59:28 PDT 2011
In addition to your comments, I also find the gyp syntax somewhat unpleasant. In particular, in .gypi lists of files to compile, ever entry is double-quoted, comma-separated, line-separated, and then grouped in multiple levels of braces. This is noisier than any of our current formats except the XML-based ones. It seems like a newline-separated list, possibly indented, should be sufficient.
For .gyp files themselves, I admit I don't have a clear understanding of what they are actually doing, so it's hard for me to say if the syntax they use is good or not.
I think in general the trick of making the files essentially Python code is (presumably) handy for Python experts but not easy to read for anyone else.
But I am assuming syntax-level things can be fixed once we have things working for more ports, and doesn't necessarily need to be a showstopper to initial adoption. Perhaps after successfully deploying gyp for one additional port, the right next steps are to make sure the experience is smooth and enjoyable for WebKit hackers, before propagating it further.
Regards,
Maciej
On Mar 24, 2011, at 9:49 PM, Brent Fulgham wrote:
> Hi Dimitri,
>
> <LONG screed follows...>
>
> On Mar 24, 2011, at 9:24 AM, Dimitri Glazkov wrote:
>
>> \With the gyp conversion at this stage, we now have a possible solution
>> to this problem. Given that there aren't any other viable alternatives
>> in the present, please consider the most productive way of
>> contributing: filing well-formulated bugs, blocking bug 55018
>> (https://bugs.webkit.org/showdependencytree.cgi?id=55018&hide_resolved=1).
>> We can then discuss these specific problems and adjust the shape of
>> the solution accordingly.
>
> While I applaud the idea of a unified build system, my own experience trying to get gyp working has been a uniformly frustrating experience.
>
> Imagine for a moment that rather than being a Chromium developer, long schooled in the use of gyp and the various build components needed to support it, you are a lowly external developer who just wishes to build WebKit. Out of curiosity, I took a stab at playing with gyp again this evening:
>
> 1. The top Google hit for "gyp build system" takes me to an exhaustive specification of the gyp input file syntax format. If I click on the "Project Home" link, I find no information on downloading or installing the system. Presumably I can download the source and somehow generate the tool.
>
> 2. If I go to the User Documentation page (http://code.google.com/p/gyp/wiki/GypUserDocumentation), I am instructed on how to draft my own gyp files to build things. But why would I care when I can't even try the software out on an existing project, like WebKit?
>
> Once I download the gyp sources and 'build' them using the included "setup.py", it's not clear what to do with them:
>
> link:Source brent$ gyp .
> Traceback (most recent call last):
> File "/usr/local/bin/gyp", line 18, in <module>
> sys.exit(gyp.main(sys.argv[1:]))
> File "/Library/Python/2.6/site-packages/gyp/__init__.py", line 374, in main
> '--depth as a workaround.'
> Exception: Could not automatically locate src directory. This is a temporary Chromium feature that will be removed. Use --depth as a workaround.
> link:Source brent$ gyp ./gyp
> Traceback (most recent call last):
> File "/usr/local/bin/gyp", line 18, in <module>
> sys.exit(gyp.main(sys.argv[1:]))
> File "/Library/Python/2.6/site-packages/gyp/__init__.py", line 374, in main
> '--depth as a workaround.'
> Exception: Could not automatically locate src directory. This is a temporary Chromium feature that will be removed. Use --depth as a workaround.
> link:Source brent$ gyp help
> Traceback (most recent call last):
> File "/usr/local/bin/gyp", line 18, in <module>
> sys.exit(gyp.main(sys.argv[1:]))
> File "/Library/Python/2.6/site-packages/gyp/__init__.py", line 374, in main
> '--depth as a workaround.'
> Exception: Could not automatically locate src directory. This is a temporary Chromium feature that will be removed. Use --depth as a workaround.
> link:Source brent$
>
> I kind of hate gyp!
>
> Compare that to the native Xcode projects, CMake files, or normal GNU Makefiles. These other solutions almost always JUST WORK, because if you can build any software on your machine, you must have used one of these options.
>
> I don't use gyp for anything, I don't have it installed, and its not clear how to go about using it.
>
> Please don't further raise the barrier of entry to new WebKit developers by adding yet another obscure build requirement to the system. :-(
>
> Thanks,
>
> -Brent
>
>
>
>
More information about the webkit-dev
mailing list