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

Reply via email to