Changes between Version 36 and Version 37 of EFLWebKit
- Timestamp:
- Nov 16, 2011, 5:28:38 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
EFLWebKit
v36 v37 12 12 == About the port == 13 13 14 WebKit/EFL is a project aiming at porting WebKit to the Enlightenment Foundation Libraries. The port is based on [BuildingGtk Gtk's] as we currently use Cairo for rendering and !LibSoup for networking, just as they do.14 WebKit/EFL is a project aiming at porting WebKit to the Enlightenment Foundation Libraries. The port shares code with the [WebKitGTK GTK+ one], as we also use Cairo for rendering and (optionally) !LibSoup for networking. 15 15 16 16 === Status === 17 17 18 Port is being developed and maintained by [http://profusion.mobi ProFUSION] and [http://samsung.com Samsung]. An early version was started by [http://openbossa.org INdT/OpenBossa], but it was changed significantly before inclusion in SVN (See their initial announcement at [http://tonikitoo.blogspot.com/2009/06/webkitefl-01-released.html 0.1 version (Jun/16/2009)]). Current version is quite complete, featuring:18 The port is being developed and maintained by [http://profusion.mobi ProFUSION] and [http://samsung.com Samsung]. An early version was started by [http://openbossa.org INdT/OpenBossa], but it was changed significantly before inclusion in SVN (See their initial announcement at [http://tonikitoo.blogspot.com/2009/06/webkitefl-01-released.html 0.1 version (Jun/16/2009)]). The current version is quite complete, featuring: 19 19 20 20 * Embedding API mostly consistent w/ Gtk, but following EFL naming scheme and conventions (such as usage of Evas Smart Objects and its callbacks); … … 29 29 * NSAPI plugins, using windowless systems for integration into Evas; 30 30 * HTML5 feature completion (video, geolocation); 31 * Improv eAPI coverage, exposing more features such as the Editor and Inspector clients;32 * Expos eDOM;31 * Improving API coverage, exposing more features such as the Editor and Inspector clients; 32 * Exposing DOM; 33 33 * WebKit2 support. 34 34 … … 38 38 * Less dependency on GNOME technologies, maybe remove Cairo and !LibSoup (the last one is already optional). 39 39 40 41 40 == Getting the source == 42 41 43 The port is being uploaded to official SVN. Right now all source files are merged, but build system is missing. Due discussions at webkit-devel, the chosen build system (CMake) might turn into the proposed "official", so discussion is taking place at bug [https://bugs.webkit.org/show_bug.cgi?id=37945 #37945 (CMake buildsystem)]42 The port is entirely in the official SVN repository. Please follow the [http://webkit.org/building/checkout.html usual instructions] for obtaining !WebKit's source code. 44 43 45 44 == Development == … … 67 66 * cmake 68 67 69 Additionally, the EFL specific packages (not officially release yet, build directly from SVN!) haveto be installed.68 Additionally, the EFL specific packages need to be installed. 70 69 71 70 * eina … … 76 75 * embryo (required by edje) 77 76 78 See http://svn.enlightenment.org/.79 80 77 == Build and Install == 81 78 82 * Follow the procedures to [http://webkit.org/building/checkout.html checkout the source code]. 83 * Create a build directory: 79 The port can be built using !WebKit's [http://www.webkit.org/building/build.html default build-webkit script]. By default, !WebKit will be built in the `WebKitBuild/<release type>` directory, where `<release type>` is either ''Release'' or ''Debug''. To override the default settings, you can set the `WEBKITOUTPUTDIR` environment variable to set a different build location. 80 81 After having [http://webkit.org/building/checkout.html checked out the source code], run the script, which will take care of calling both CMake and make. 82 84 83 {{{ 85 webkit$ mkdir build 86 webkit$ cd build 87 build$ 88 }}} 89 * Run CMake (production settings, see bellow for development flags): 90 {{{ 91 build$ cmake ../Source -DPORT=Efl -DSHARED_CORE=OFF -DCMAKE_BUILD_TYPE=Release 92 }}} 93 * Run make: 94 {{{ 95 make 96 }}} 97 * Go grab some coffee, this'll take a while. 98 * Install the thing: 99 {{{ 100 make install 84 WebKit$ ./Tools/Scripts/build-webkit --efl 101 85 }}} 102 86 103 Alternatively while doing development it is interesting to turn on debug and shared core. '''Debug''' will generate immensely big libraries with debug symbols and also turn on assertions in the code. '''Shared core''' is a feature that splits all internal libraries into actual dynamic loaded libraries (libJavaScriptCore, libWebCore...) which reduces the link time and memory consumption, with a slight performance hit during startup (whence not recommended for production builds): 87 A variety of features can be enabled or disabled by the `build-webkit` script, pass the `--help` argument to it to see all possible options (please notice some options have no effect as they depend on features which have not been implemented on the port yet): 88 104 89 {{{ 105 build$ cmake ../Source -DPORT=Efl -DSHARED_CORE=ON -DCMAKE_BUILD_TYPE=Debug 90 WebKit$ ./Tools/Scripts/build-webkit --help 91 WebKit$ ./Tools/Scripts/build-webkit --efl --debug --prefix=/opt/webkit-efl --no-svg --page-visibility-api 106 92 }}} 107 93 94 It is also possible to pass extra arguments directly to CMake by using the `--cmakearg` option. 95 96 {{{ 97 WebKit$ ./Tools/Scripts/build-webkit --efl --cmakearg="-DCMAKE_CXX_COMPILER=/opt/c++ -DCMAKE_PREFIX_PATH=/usr/local" 98 }}} 99 100 As with any CMake project, it is later possible to edit the existing build configuration by using tools such as `ccmake` or `cmake-gui`. 101 102 {{{ 103 WebKit$ ./Tools/Scripts/build-webkit --efl --debug 104 WebKit$ cd WebKitBuild/Debug 105 WebKit/WebKitBuild/Debug$ cmake-gui . # Change a few options 106 WebKit/WebKitBuild/Debug$ make # Build again 107 }}} 108 109 === The SHARED_CORE option === 110 111 By default, internal !WebKit libraries such as !JavaScriptCore and !WebCore are built as static libraries and linked into the libewebkit shared library, which is the actual port library. It is also possible to build all libraries as shared libraries, which reduces link time and memory consumption but has a slight performance hit during application startup (obviously, all the shared libraries then need to be distributed and installed). 112 113 In order to enable the SHARED_CORE option, pass `--cmakearg="-DSHARED_CORE=ON" to the `built-webkit` script. 114 115 {{{ 116 WebKit$ ./Tools/Scripts/build-webkit --efl --cmakearg="-DSHARED_CORE=ON" 117 }}} 108 118 109 119 == Building without !LibSoup or Glib == 110 120 111 * Just do the same as before, but on cmake command you should pass your network backend option: 121 It is possible to build webkit-efl without glib-dependent libraries such as !LibSoup, and even without glib itself. 122 123 To use the [http://curl.haxx.se/ libcurl] network backend, pass `--cmakearg="-DNETWORK_BACKEND=curl` to the `build-webkit` script. 124 112 125 {{{ 113 build$ cmake ../Source -DPORT=Efl -DNETWORK_BACKEND=curl 126 WebKit$ ./Tools/Scripts/build-webkit --efl --cmakearg="-DNETWORK_BACKEND=curl" 114 127 }}} 115 128 116 * For building without Glib, you should use: 129 To build without Glib, you should use: 130 117 131 {{{ 118 build$ cmake ../Source -DPORT=Efl -DNETWORK_BACKEND=curl -DENABLE_GLIB_SUPPORT=OFF -DENABLE_VIDEO=OFF132 build$ ./Tools/Scripts/build-webkit --efl --no-video --cmakearg="-DNETWORK_BACKEND=curl -DENABLE_GLIB_SUPPORT=OFF" 119 133 }}} 120 134 121 * Note that if you ask for disabling Glib, but still uses!LibSoup backend or video support, it will force enabling Glib back (!LibSoup and Video depend on Glib).135 Note that if you ask for disabling Glib (`-DENABLE_GLIB_SUPPORT=OFF`), but still use !LibSoup backend or video support, it will force enabling Glib back (!LibSoup and Video depend on Glib). 122 136 137 == Building !DumpRenderTree == 138 139 !DumpRenderTree is related to !WebKit's layout tests and can be run with the `run-webkit-tests` script. Properly using it is outside the scope of this page. 140 141 In order to build it in a way that all expected tests pass and it does not crash, however, certain features need to be enabled when building the port. SHARED_CORE currently needs to be turned on, and some features need to be enabled manually. 142 143 {{{ 144 ./Tools/Scripts/build-webkit --efl --touch-events --touch-icon-loading --blob --data-transfer-items --device-orientation --fullscreen-api --geolocation --notifications --orientation-events --video --workers --shared-workers --request-animation-frame --page-visibility-api --cmakearg="-DSHARED_CORE=ON" 145 }}} 123 146 124 147 == Questions, feedback == … … 127 150 128 151 * IRC: #webkit, #webkit-efl on irc.freenode.net 129 * The [http://lists.webkit.org/mailman/listinfo.cgi/webkit-efl webkit-efl mailing list] (development discussion, moderatetraffic)152 * The [http://lists.webkit.org/mailman/listinfo.cgi/webkit-efl webkit-efl mailing list] (development discussion, low traffic) 130 153