| 1 | [[PageOutline]] |
| 2 | |
| 3 | = Windows CE Port of WebKit = |
| 4 | |
| 5 | WebKit is an open source web browser engine. WebKit WinCE is a project aiming at porting this fabulous engine to Windows CE. |
| 6 | |
| 7 | The WinCE port of WebKit currently compiles on Windows. |
| 8 | |
| 9 | |
| 10 | == Status == |
| 11 | |
| 12 | WebKit WinCE port is based on the work by Torche Mobile and is currently under development. |
| 13 | |
| 14 | == Getting the Source == |
| 15 | 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. |
| 16 | |
| 17 | {{{ |
| 18 | git clone git://gitorious.org/+wincewebkit-developers/webkit/wincewebkit.git |
| 19 | }}} |
| 20 | |
| 21 | Third party libraries are under "3rdparty" directory. |
| 22 | |
| 23 | |
| 24 | == Build == |
| 25 | |
| 26 | We use [http://cmake.org/ CMake] as our build system. You don't need a full Cygwin environment, but the following tooles are required: |
| 27 | |
| 28 | * bison |
| 29 | * flex |
| 30 | * gperf |
| 31 | * perl |
| 32 | * python |
| 33 | |
| 34 | === Windows CE SDK === |
| 35 | |
| 36 | Visual Studio 2005 (No Express Edition!) with a Windows CE SDK is required to build the binary. Visual Studio 2008 should work too. |
| 37 | |
| 38 | 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. |
| 39 | |
| 40 | === Build CMake with WinCE support === |
| 41 | |
| 42 | Because the offical CMake has not support for Windows CE at the moment, we need to use the CMake version from AlexeyS. |
| 43 | |
| 44 | {{{ |
| 45 | git clone git://github.com/AlexeyS/cmake.git |
| 46 | }}} |
| 47 | |
| 48 | Follow the instructions in the Readme.txt to build a CMake with WinCE support. |
| 49 | |
| 50 | === Build WebKit === |
| 51 | |
| 52 | When you have a working CMake with WinCE support you can generate a Visual Studio Solution out of the CMake files. |
| 53 | |
| 54 | {{{ |
| 55 | mkdir WebKitBuild |
| 56 | cd WebKitBuild |
| 57 | cmake -G "Visual Studio 8 2005 for Windows CE" -DPORT:STRING=WinCE -DCMAKE_WINDOWS_CE_PLATFORM:STRING="STANDARDSDK_500 (ARMV4I)" C:\WebKitSource |
| 58 | }}} |
| 59 | |
| 60 | 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. |
| 61 | |
| 62 | Now you should be able to open the solution and build it. |
| 63 | |
| 64 | ==== Possible Builderrors ==== |
| 65 | Because of the fact that the buildsystem isn't 100% finished you may see one or more of the following errors: |
| 66 | |
| 67 | {{{ |
| 68 | example.h(123) : fatal error C1083: Cannot open include file: 'ExampleNames.h': No such file or directory |
| 69 | }}} |
| 70 | 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. |
| 71 | |
| 72 | {{{ |
| 73 | Creating library... |
| 74 | LIB : warning LNK4068: /MACHINE not specified; defaulting to X86 |
| 75 | example.obj : fatal error LNK1112: module machine type 'ARM' conflicts with target machine type 'X86' |
| 76 | }}} |
| 77 | To fix this issue open the project properties and navigate to "Configuration Properties" / "Librarian" / "Command Line" and add {{{/MACHINE:ARM}}} into the "Additional options". |
| 78 | |
| 79 | {{{ |
| 80 | example.lib(example.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in coredll.lib(COREDLL.dll) |
| 81 | example.lib(example.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in coredll.lib(COREDLL.dll) |
| 82 | }}} |
| 83 | 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. |
| 84 | |
| 85 | == Questions and feedback == |
| 86 | |
| 87 | If you have questions please send an email to Patrick Gansterer <paroga@paroga.com> |