[[PageOutline]] = Windows CE Port of WebKit = WebKit is an open source web browser engine. WebKit WinCE is a project aiming at porting this fabulous engine to Windows CE. The WinCE port of WebKit currently compiles on Windows. == Status == WebKit WinCE port is based on the work by Torche Mobile and is currently under development. == Getting the Source == As the port is not completely upstreamed yet, one can get only the partial source code from official [http://webkit.org/building/checkout.html WebKit repository]. Instead, we are hosting our development in http://gitorious.org/+wincewebkit-developers/webkit/wincewebkit. {{{ git clone git://gitorious.org/+wincewebkit-developers/webkit/wincewebkit.git }}} Third party libraries are under "3rdparty" directory. == Build == We use [http://cmake.org/ CMake] as our build system. You don't need a full Cygwin environment, but the following tooles are required: * bison * flex * gperf * perl * python === Windows CE SDK === Visual Studio 2005 or 2008 (No Express Edition!) with a Windows CE SDK is required to build the binary. You can find the Windows CE 5.0 Standard SDK at http://www.microsoft.com/downloads/details.aspx?familyid=fa1a3d66-3f61-4ddc-9510-ae450e2318c3. Any other SDK should work too. It has been tested on Windows CE 6.0 but there may not be a public SDK available. === Build CMake with WinCE support === Because the offical CMake has not support for Windows CE at the moment, we need to use the CMake version from AlexeyS. {{{ git clone git://github.com/AlexeyS/cmake.git git checkout all }}} Follow the instructions in the Readme.txt to build a CMake with WinCE support. Building via SLN files can work correctly but probably not make. === Build WebKit === When you have a working CMake with WinCE support you can generate a Visual Studio Solution out of the CMake files. {{{ mkdir WebKitBuild cd WebKitBuild cmake -G "Visual Studio 8 2005 for Windows CE" -DPORT:STRING=WinCE -DCMAKE_WINDOWS_CE_PLATFORM:STRING="STANDARDSDK_500 (ARMV4I)" C:\WebKitSource }}} This will generate a WebKit.sln in the WebKitBuild directory from the sourcecode in C:\WebKitSource. You can change the generator to {{{Visual Studio 9 2008 for Windows CE}}} if you want to generate Visual Studio 2008 projects. It is also possible to select an other Windwos CE SDK when you replace the {{{STANDARDSDK_500 (ARMV4I)}}} with the name of SDK you want to use. Now you should be able to open the solution and build it. ==== Possible Builderrors ==== Because of the fact that the buildsystem isn't 100% finished you may see one or more of the following errors: {{{ example.h(123) : fatal error C1083: Cannot open include file: 'ExampleNames.h': No such file or directory }}} This should happen only with the first build, because of some missing dependencies. When you build the solution a second time (wait until the first is finished!) they will be gone. {{{ Creating library... LIB : warning LNK4068: /MACHINE not specified; defaulting to X86 example.obj : fatal error LNK1112: module machine type 'ARM' conflicts with target machine type 'X86' }}} To fix this issue open the project properties and navigate to "Configuration Properties" / "Librarian" / "Command Line" and add {{{/MACHINE:ARM}}} into the "Additional options". {{{ example.lib(example.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in coredll.lib(COREDLL.dll) example.lib(example.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in coredll.lib(COREDLL.dll) }}} If you get tons of this messages you hit http://support.microsoft.com/kb/148652. Moving all windows libraries after the WebKit libraries in "Configuration Properties" / "Linker" / "Additional Dependencies" will solve this problem. You may also encounter errors generating chartables.c because of the version of perl that you are using. Some versions of perl have issues with CR/LF. Most win32 versions of perl will work. == Questions and feedback == If you have questions please send an email to Patrick Gansterer