|
From: | Chris Vetter |
Subject: | Re: Webkit for GNUstep |
Date: | Thu, 03 Aug 2006 22:56:53 +0200 |
is it possible to compile Webkit using GNUstep? I looked at https://gna.org/projects/gswebkit, but it seems GNUstep WebKit is not developed anymore. The site mentions that the source code of WebCore and JavaScriptCore has to be modified because there is no Objective-C++ compiler on non-Apple systems. I think this is not true anymore, at least on Debian SID there is gobjc++. What has to be done to compile Webkit with that?
First off, WebKit consists of 3 parts, JavaScriptCore, WebCore and WebKit.
That being said, you can compile most of JavaScriptCore (part 1), since most is either plain C, or C++ BUT, parts of it, that are being used by WebKit (part 3, see above) require several bindings compiled into JavaScriptCore, that are partly based on CoreFoundation and written in Objective-C++ I've got that part working, but you need GCC 4.x and CoreFoundation installed.
WebCore (part 2) requires JavaScriptCore and a LOT of re-writing, since the only supported uhm environments are GDK or WxWidgets and of course Mac. However, the Mac parts cannot be used directly due to the fact that Mac specific libraries are required, like once again CoreFoundation (no problem) and ApplicationServices (big problem). So, in other words, anything platform related, like font rendering, needs to be re-implemented for GNUstep. I'm currently looking into that.
WebKit (part 3) is the library/framework that can and should be used by "3rd parties" that want to write web-related tools or applications, meaning, the 2 <foo>Core libs mentioned above are considered 'private' frameworks and are required to build WebKit. It provides panels (eg. for authentication) and plugin support (eg. for writing a flash plugin). Parts are written in C++ and for Carbon (can't be used and needs to be re-written), or mach-related, and/or require bindings from JavaScriptCore and WebCore. I've looked into it, but haven't started doing anything, since the former two are required to be installed first.
On a side-note: this project is a PITA. If you take a look at the makefiles and try to figure out WTF is supposed to happen, you'll know what I mean. And no, using bakefiles (as you're supposed to) won't help. For one, because only parts of the required files are created (some source files are yacc/lex-files and need to be 'translated' first) and second, only a small part of the libs is being compiled, because required libs (like CoreFoundation) do not exist normally.
There's a project, OSB-Webkit (or sth similar) that just builds those parts and while it is reasonably useful (as far as I've seen) it doesn't give you the full functionality of what would be possible...
To top it off, the WebKit-team is considering a complete switch to C++ (meaning to drop any ObjC/ObjC++ support) and apparently get rid of Foundation/AppKit use.
-- Chris
[Prev in Thread] | Current Thread | [Next in Thread] |