What is the current status of wxWebKit?

Hi,

Just wondering what the current status of wxWebKit is.

All the best, Grant

Grant Paton-Simpson wrote:

Hi,

Just wondering what the current status of wxWebKit is.

+1
cheers,
Stef

Hi Grant,

Hi,

Just wondering what the current status of wxWebKit is.

My original plan was to do a release as soon as frames support is
finished, which is about 80% there, but as I was trying to finish that
up the build project generator I have been using (Bakefile) actually
began to choke and crash on the number of sources in WebCore. The
problem was at the C level, and fixing it the right way probably would
be a task, not to mention I'd need to distribute the 'fixed' Bakefile
until an official release was made. Since this is just one in a chain
of issues I've had with Bakefile, and since I don't even use the IDE
projects it can generate (just make and nmake makefiles), I finally
decided to switch to something a little more powerful and flexible. In
other words, a Python-based build system called waf. :smiley: I tried SCons
first, but the performance of that on a large project is really
dismal, unfortunately.

I'm running the final tests on the new system now, and hope today or
tomorrow to have a final patch posted for inclusion into WebKit. In
addition to not having the issues associated with Bakefile, also has
made it a lot easier for me to fix a number of long-standing issues
I've had with the build:

- Allows me to detect the MSVC version on Windows and auto-install the
right deps package for it, and also check if the deps package is up-to-
date and update if not
- You no longer need to move Cygwin's /usr/bin/link or muck with the
PATH to get a working build on Windows
- You can run parallel builds on any platform, Win included, now, just
by specifying a -j<num_processes> argument to --makeargs
- Doesn't require hacks the makefiles to build Python modules on Mac
- Doesn't require hacks to get the proper Python settings for building
the Python module
- Doesn't require hacks to build the .app bundle for the sample app on
Mac
(Starting to see a pattern here...? :wink:

Waf can actually be bundled up as a single, ~100KB Python script, so
I've made the build system auto-downloading and self-updating as well.
No need to manually install the build system, and it doesn't install
to your system directories so you're free to have your own copy
elsewhere without conflicts.

Another thing waf has enabled me to do is to actually auto-generate
the list of source files by scanning the directories. This does have a
minor impact on performance, but one of my big time-eaters has been
keeping wxWebKit trunk building. I usually have to deal with issues
related to that several times a week. This change will automatically
address the majority of build issues, where a file was simply added or
removed but the wx project files weren't updated. The build will still
be able to break, say if wx needs to add some stubs for a new class
with some platform-specific methods or a new directory is added to the
tree, etc. but it should significantly reduce the amount of time I
spend keeping trunk going, so that I can focus on the wx port more. In
fact, when I updated to trunk after about a month of working off a
branch, I needed to make one change to the build system, rather than
the 15-20 I probably would have spent a day working out.

Switching is painful and time-consuming, but I feel confident that it
is a good move for the project and will remove some of the annoying
bottlenecks we've been dealing with up until now. I'll be out of town
next week but after that I hope to get back to finishing up the frames
patch and getting a release out.

Thanks,

Kevin

···

On Jul 19, 2009, at 6:19 PM, Grant Paton-Simpson wrote:

All the best, Grant

>

Thanks heaps Kevin. And it sounds like Waf is going to make life a
lot more pleasant in the long run. Here is the link for those
interested: http://code.google.com/p/waf/

···

On Jul 23, 6:22 am, Kevin Ollivier <kevin-li...@theolliviers.com> wrote:

Hi Grant,

On Jul 19, 2009, at 6:19 PM, Grant Paton-Simpson wrote:

> Hi,

> Just wondering what the current status of wxWebKit is.

My original plan was to do a release as soon as frames support is
finished, which is about 80% there, but as I was trying to finish that
up the build project generator I have been using (Bakefile) actually
began to choke and crash on the number of sources in WebCore. The
problem was at the C level, and fixing it the right way probably would
be a task, not to mention I'd need to distribute the 'fixed' Bakefile
until an official release was made. Since this is just one in a chain
of issues I've had with Bakefile, and since I don't even use the IDE
projects it can generate (just make and nmake makefiles), I finally
decided to switch to something a little more powerful and flexible. In
other words, a Python-based build system called waf. :smiley: I tried SCons
first, but the performance of that on a large project is really
dismal, unfortunately.

I'm running the final tests on the new system now, and hope today or
tomorrow to have a final patch posted for inclusion into WebKit. In
addition to not having the issues associated with Bakefile, also has
made it a lot easier for me to fix a number of long-standing issues
I've had with the build:

- Allows me to detect the MSVC version on Windows and auto-install the
right deps package for it, and also check if the deps package is up-to-
date and update if not
- You no longer need to move Cygwin's /usr/bin/link or muck with the
PATH to get a working build on Windows
- You can run parallel builds on any platform, Win included, now, just
by specifying a -j<num_processes> argument to --makeargs
- Doesn't require hacks the makefiles to build Python modules on Mac
- Doesn't require hacks to get the proper Python settings for building
the Python module
- Doesn't require hacks to build the .app bundle for the sample app on
Mac
(Starting to see a pattern here...? :wink:

Waf can actually be bundled up as a single, ~100KB Python script, so
I've made the build system auto-downloading and self-updating as well.
No need to manually install the build system, and it doesn't install
to your system directories so you're free to have your own copy
elsewhere without conflicts.

Another thing waf has enabled me to do is to actually auto-generate
the list of source files by scanning the directories. This does have a
minor impact on performance, but one of my big time-eaters has been
keeping wxWebKit trunk building. I usually have to deal with issues
related to that several times a week. This change will automatically
address the majority of build issues, where a file was simply added or
removed but the wx project files weren't updated. The build will still
be able to break, say if wx needs to add some stubs for a new class
with some platform-specific methods or a new directory is added to the
tree, etc. but it should significantly reduce the amount of time I
spend keeping trunk going, so that I can focus on the wx port more. In
fact, when I updated to trunk after about a month of working off a
branch, I needed to make one change to the build system, rather than
the 15-20 I probably would have spent a day working out.

Switching is painful and time-consuming, but I feel confident that it
is a good move for the project and will remove some of the annoying
bottlenecks we've been dealing with up until now. I'll be out of town
next week but after that I hope to get back to finishing up the frames
patch and getting a release out.

Thanks,

Kevin

> All the best, Grant

pyGrant wrote:

Thanks heaps Kevin. And it sounds like Waf is going to make life a
lot more pleasant in the long run. Here is the link for those
interested: http://code.google.com/p/waf/
  

Would this also be a good tool to an application package/build using py2exe/py2app/cx_freeze and friends?

Werner