[[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 (No Express Edition!) with a Windows CE SDK is required to build the binary. Visual Studio 2008 should work too. You can find the Windows CE 5 Standard SDK at http://www.microsoft.com/downloads/details.aspx?familyid=fa1a3d66-3f61-4ddc-9510-ae450e2318c3. Any other SDK should work too. === 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 }}} Follow the instructions in the Readme.txt to build a CMake with WinCE support. === 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. == Questions and feedback == If you have questions please send an email to Patrick Gansterer