[webkit-dev] Build system update

Brent Fulgham bfulgham at gmail.com
Thu Mar 24 21:49:29 PDT 2011


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