Hi Eric,
On Apr 15, 2006, at 3:24 PM, Eric Seidel wrote:
On Apr 15, 2006, at 3:08 PM, Kevin Ollivier wrote:
As Mike Emmel and I have both decided to use Bakefile for our
ports, we decided to work together and create a build system that
works for both our ports. As a start, my focus has been on taking
Mike's project files and creating a basic project that builds the
cross-platform WebCore sources on Win, Mac and Linux that any port
would need. This way any new ports that are created can actually
just "derive" from the webcore_base project and only have to add
includes/sources/etc. specific to their platform or port.
Glad to hear your porting efforts are moving along smoothly!
First of all, I think the best way to get any of this moving from
our side, is to start submitting patches. We have instructions on
our website as to how to do just that:
http://webkit.opendarwin.org/coding/contributing.html
This patches can (and should) include your bakefile build system
files.
Okay, thanks a lot for your help!
Once your bakefile system has made it through the review process
and been landed in our tree, one of the next goals should be to set
up a build-slave for your port. That way we can know when we break
you by checking http://build.webkit.org/
[snip]
Here are the changes I needed to make to WebCore for this to work,
and also any unresolved issues on various ports:
http://kevino.theolliviers.com/webkit/bakefile-changes.txt
Many of the issues you mention here:
http://kevino.theolliviers.com/webkit/bakefile-changes.txt
have already been resolved, at least for the win32 port. I checked
in some fixes for that port yesterday.
Thanks! I noticed that when a change breaks the Win32 build, it's
usually updated in about a day. :-) I mainly listed them as a
reminder to myself, actually, because when the VC project is not in
sync with TOT I need to manually alter the list of source code files
that I grabbed from the VC project.
[snip]
But there's still one major question before I can put together a
draft to show people. How exactly should build systems for ports
be incorporated into the webkit tree? For example, when you think
of Win32, wx, etc. there may be multiple MSVS7/8 project files. So
do we create one project file and allow people to select a port
when they build (with an intelligent default, of course) or do we
put project files for ports in separate files/dirs? If the latter
(which I'm personally leaning towards), what should the directory
scheme for ports be?
[snip]
Our current system for supporting ports in our directory tree have
been to put their necessary files under a /platform/port-name/
directory. I expect that should work for WxWidgets as well. If it
doesn't we can make alternative arrangements.
This is what I am going to do with the wx-specific sources. But, and
I know this is being a bit picky ;-), I hesitate to put the project
files there because platform != port in some cases. e.g. since wx is
cross-platform, it may be able to, or need to, use some sources from
platform/win, platform/linux, or platform/mac. So I guess I see
platform as a mixture of "port" specific and "os" specific sources,
and I think it could get confusing as to where to put (or where to
find) a port's project files.
Well, in any case, for now I've set things up to put Bakefile-
generated projects in WebCore/ports/<PORT> directory. (Perhpas
'projects' would be a better term?) I've also made everything in the
Bakefiles relative to SRCDIR, too, so that if we move the project
files into another folder, the only change we need to make to the
Bakefiles is to make sure that SRCDIR points to the WebCore folder. I
should be able to create a patch in a day or two, assuming anonsvn
comes back up. :-) I'm going to give Mike a heads-up first to see if
what I've done works for him, or if I need to change something first,
but once that's done I'll submit it to Bugzilla.
BTW, you might want to consider having a separate project file that
generates the cross-platform webcore sources as a static library
(say, a "WebCoreBase" project file), and then have the Win32, etc.
projects statically link in that library and only build the files
specific to their port/platform (and of course, depend on
WebCoreBase). Actually, I've pretty much already set up the Bakefile
projects this way, so that you can see what I mean when I submit the
patch. :-) This way there wouldn't be any redundancy among projects
in terms of maintaining the cross-platform sources, and each port
will only ever have to worry about updating/maintaining its own
specific files.
Thanks again to everyone for all your help! I've been wanting to make
progress on this for a long time, and it's good to finally see it
getting hammered out. :-)
Kevin
I hope that helps.
-eric
_______________________________________________
webkit-dev mailing list
[email protected]
http://www.opendarwin.org/mailman/listinfo/webkit-dev