Changes between Version 36 and Version 37 of EFLWebKit


Ignore:
Timestamp:
Nov 16, 2011 5:28:38 AM (12 years ago)
Author:
rakuco@FreeBSD.org
Comment:

Update the port information

Legend:

Unmodified
Added
Removed
Modified
  • EFLWebKit

    v36 v37  
    1212== About the port ==
    1313
    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.
     14WebKit/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.
    1515
    1616=== Status ===
    1717
    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:
     18The 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:
    1919
    2020 * Embedding API mostly consistent w/ Gtk, but following EFL naming scheme and conventions (such as usage of Evas Smart Objects and its callbacks);
     
    2929 * NSAPI plugins, using windowless systems for integration into Evas;
    3030 * HTML5 feature completion (video, geolocation);
    31  * Improve API coverage, exposing more features such as the Editor and Inspector clients;
    32  * Expose DOM;
     31 * Improving API coverage, exposing more features such as the Editor and Inspector clients;
     32 * Exposing DOM;
    3333 * WebKit2 support.
    3434
     
    3838 * Less dependency on GNOME technologies, maybe remove Cairo and !LibSoup (the last one is already optional).
    3939
    40 
    4140== Getting the source ==
    4241
    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)]
     42The 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.
    4443
    4544== Development ==
     
    6766 * cmake
    6867
    69 Additionally, the EFL specific packages (not officially release yet, build directly from SVN!) have to be installed.
     68Additionally, the EFL specific packages need to be installed.
    7069
    7170 * eina
     
    7675 * embryo (required by edje)
    7776
    78 See http://svn.enlightenment.org/.
    79 
    8077== Build and Install ==
    8178
    82  * Follow the procedures to [http://webkit.org/building/checkout.html checkout the source code].
    83  * Create a build directory:
     79The 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
     81After 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
    8483{{{
    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
     84WebKit$ ./Tools/Scripts/build-webkit --efl
    10185}}}
    10286
    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):
     87A 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
    10489{{{
    105 build$ cmake ../Source -DPORT=Efl -DSHARED_CORE=ON -DCMAKE_BUILD_TYPE=Debug
     90WebKit$ ./Tools/Scripts/build-webkit --help
     91WebKit$ ./Tools/Scripts/build-webkit --efl --debug --prefix=/opt/webkit-efl --no-svg --page-visibility-api
    10692}}}
    10793
     94It is also possible to pass extra arguments directly to CMake by using the `--cmakearg` option.
     95
     96{{{
     97WebKit$ ./Tools/Scripts/build-webkit --efl --cmakearg="-DCMAKE_CXX_COMPILER=/opt/c++ -DCMAKE_PREFIX_PATH=/usr/local"
     98}}}
     99
     100As 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{{{
     103WebKit$ ./Tools/Scripts/build-webkit --efl --debug
     104WebKit$ cd WebKitBuild/Debug
     105WebKit/WebKitBuild/Debug$ cmake-gui . # Change a few options
     106WebKit/WebKitBuild/Debug$ make # Build again
     107}}}
     108
     109=== The SHARED_CORE option ===
     110
     111By 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
     113In order to enable the SHARED_CORE option, pass `--cmakearg="-DSHARED_CORE=ON" to the `built-webkit` script.
     114
     115{{{
     116WebKit$ ./Tools/Scripts/build-webkit --efl --cmakearg="-DSHARED_CORE=ON"
     117}}}
    108118
    109119== Building without !LibSoup or Glib ==
    110120
    111  * Just do the same as before, but on cmake command you should pass your network backend option:
     121It is possible to build webkit-efl without glib-dependent libraries such as !LibSoup, and even without glib itself.
     122
     123To use the [http://curl.haxx.se/ libcurl] network backend, pass `--cmakearg="-DNETWORK_BACKEND=curl` to the `build-webkit` script.
     124
    112125{{{
    113 build$ cmake ../Source -DPORT=Efl -DNETWORK_BACKEND=curl
     126WebKit$ ./Tools/Scripts/build-webkit --efl --cmakearg="-DNETWORK_BACKEND=curl"
    114127}}}
    115128
    116  * For building without Glib, you should use:
     129To build without Glib, you should use:
     130
    117131{{{
    118 build$ cmake ../Source -DPORT=Efl -DNETWORK_BACKEND=curl -DENABLE_GLIB_SUPPORT=OFF -DENABLE_VIDEO=OFF
     132build$ ./Tools/Scripts/build-webkit --efl --no-video --cmakearg="-DNETWORK_BACKEND=curl -DENABLE_GLIB_SUPPORT=OFF"
    119133}}}
    120134
    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).
     135Note 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).
    122136
     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
     141In 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}}}
    123146
    124147== Questions, feedback ==
     
    127150
    128151 * 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, moderate traffic)
     152 * The [http://lists.webkit.org/mailman/listinfo.cgi/webkit-efl webkit-efl mailing list] (development discussion, low traffic)
    130153