[webkit-dev] Build system update

Adam Barth abarth at webkit.org
Tue Mar 22 19:16:32 PDT 2011


With a bunch of help from Dimitri and Eric, we now have a functioning
GYP-based build for the Apple Mac port.  There are still a couple bugs
we need to fix before this build system is ready for production
(they're filed as blocking Bug 55018, if you're curious).  If you'd
like to try out the GYP-based build, you can invoke it (on a Mac) as

./Tools/Scripts/build-webkit --gyp

If you just want to look at the generated project files, you can
generate them using this command:


That script will create
Source/JavaScriptCore/gyp/JavaScriptCore.xcodeproj and
Source/WebCore/gyp/WebCore.xcodeproj (as well as a JavaScriptGlue
project file, which you should feel free to ignore).

The main advantage of this build system over the existing Apple Mac
build system is that the list of files is shared between this build
system and the Chromium build system.  That means one fewer location
to update when adding, removing, or renaming a file.  Over time, we
should be able to share more between the build systems (because they
are written in a common language) and to share the list of files
between more ports.

One area that I could use some help from one or more Apple folks is
making sure that this build system integrates properly with Apple's
internal build system.  Based on my (incomplete!) understanding of
Apple's internal build system, there are at least two options:

1) Apple's internal build system consumes Source in its entirety and
builds a master WebKit.xcodeproj (or a Makefile), which abstracts
further details about the build, such as how subsequent xcodeproj are
created or how many libraries WebKit is factored into (e.g., letting
us extract WTF from JavaScriptCore).

2) For each submission to Apple's internal build system, we create a
branch, generate xcodeproj files, and check them into the branch.
Apple's internal build system can then "svn export" the branch and see
xcodeproj files, as today.


More information about the webkit-dev mailing list