[Crosswalk] Update README.md
authorTaeho Kim <th81.kim@samsung.com>
Mon, 24 Nov 2014 14:38:37 +0000 (23:38 +0900)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
Bug: http://107.108.218.239/bugzilla/show_bug.cgi?id=8505

Change-Id: I75c911517b8b8531dba70b3ed283494246e5c8c8
Signed-off-by: Taeho Kim <th81.kim@samsung.com>
Signed-off-by: Piotr Tworek <p.tworek@samsung.com>
tizen_src/README [deleted file]
tizen_src/README.md

diff --git a/tizen_src/README b/tizen_src/README
deleted file mode 100644 (file)
index adbedcd..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-This is Chromium/Blink git repositiory for Tizen 
-
-Chromium version : 38.0.2096.0
index 1a1eac1..c90f95b 100755 (executable)
@@ -1,5 +1,4 @@
-chromium-efl
-==========
+## Introduction
 
 chromium-efl is a Chromium/Blink engine port to tizen/efl platform. The port
 implements Chromium/Blink platform APIs.
@@ -7,231 +6,72 @@ implements Chromium/Blink platform APIs.
 It also exposes a webview API implementation based on chromium-efl port. It is
 supposed to be completely source and binary compatible with EFL-WebKit2.
 
-Building
-----------
-
-### For Desktop build
-
-    $ ./build/build_desktop.sh [-h|--help] [--skip-gyp] [--skip-ninja] [--ccache] [--debug] [--content-shell]
-
-### Requirements For Desktop build
-Base build system : Ubuntu 14.04 LTS 64bit
-Since upgrade EFL version 1.9.5, packages needed to install into build machine is added as below.
-
-    $ sudo apt-get install libfribidi-dev libgif-dev libtiff4-dev libgstreamer1.0-dev \
-                           libsndfile1-dev libxp-dev libmount-dev libblkid-dev libluajit-5.1-dev \
-                           libgstreamer-plugins-base1.0-dev
-
-### For Emulator(i586) build
-
-    $ build/build_emulator.sh [--clean] [--define '_debug_mode 1'] [--define '_skip_gyp 1'] [--define 'nodebug 1'] [--define '_enable_content_shell 1']
-                              [--ccache]
-
-      [--define '_debug_mode 1']   excute debug build (default : release)
-      [--define '_skip_gyp 1']     skip gyp generate  (default : gyp generate)
-      [--define 'nodebug 1']       omit creation of debug packages (default: build debug packages too)
-                                   Note: To let binaries to be recreated without debug symbols, this should be
-                                   preceded by removing build directory.
-      [--ccache]                   see ### Using ccache inside gbs
-
-### For Mobile build
-Before Tizen build You need to install GBS.
-Please refer to (https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.
-platform.development%2Fhtml%2Fplatform_dev_env%2Fgit_build_system.htm)
-
-    $ build/build_mobile.sh [--clean] [--define '_debug_mode 1'] [--define '_skip_gyp 1'] [--define 'nodebug 1'] [--define '_enable_content_shell 1']
-                            [--ccache]
-
-      [--define '_debug_mode 1']   excute debug build (default : release)
-      [--define '_skip_gyp 1']     skip gyp generate  (default : gyp generate)
-      [--define 'nodebug 1']       omit creation of debug packages (default: build debug packages too)
-                                   Note: To let binaries to be recreated without debug symbols, this should be
-                                         preceded by removing build directory.
-      [--ccache]                   see ### Using ccache inside gbs
-      [-P tizenmb_v2.3]            trigger tizen v2.3 build (default)
-
-
-### Deploy Mobile build
-The mobile profile currently supported is based on Tizen 2.3, where GCC 4.6 and the respective compatible libraries
-are available.
-However for dev/master development, where we biweekly rebase against chromium.org, a newer compiler version is
-required (namely GCC 4.8 or Clang). To accommodate this, GBS-based mobile builds pull in a extra supplement repository
-that provides GCC 4.8 and compatible run/buildtime libraries. Upon a success build, these binaries have to be deployed
-into the target. It is done by executing the following script once upon a device flash (with 'sdb root on' toggled):
-
-    $ build/deploy_libc_to_target.sh
-
-### For TV build
-Before Tizen build You need to install GBS.
-Please refer to (https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.
-platform.development%2Fhtml%2Fplatform_dev_env%2Fgit_build_system.htm)
-
-    $ build/build_tv.sh [--clean] [--define '_debug_mode 1'] [--define '_skip_gyp 1'] [--define 'nodebug 1']
-                        [--ccache]
-
-      [--define '_debug_mode 1']   excute debug build (default : release)
-      [--define '_skip_gyp 1']     skip gyp generate  (default : gyp generate)
-      [--define 'nodebug 1']       omit creation of debug packages (default: build debug packages too)
-                                   Note: To let binaries to be recreated without debug symbols, this should be
-                                         preceded by removing build directory.
-      [--ccache]                   see ### Using ccache inside gbs
-
-
-### Using ccache inside gbs
-To use ccache for faster full builds use --ccache parameter:
-gbs build --ccache ...
-
-Prerequisites:
-* 10GB free space
-
-ccache directory will be created with profile and architecture prefix e.g:
-out.mobile.arm.ccache
-
-
-### Requirements for Media Element
-You need to install GStreamer packages from tizenrepo.
-    package location : http://10.251.52.177/tizenrepo/jpn-dcm/Redwood8974JPNDCM_20131218.006/repos/slp-release/armv7l/packages/armv7l/
-    shell script location : http://10.251.52.177/tizenrepo/release/common/
-
-1. Download 3 shell script files to your local folder.
-    $ mkdir temp
-    $ cd temp
-    $ wget http://10.251.52.177/tizenrepo/release/common/1_get_gstreamer_packages.sh
-    $ wget http://10.251.52.177/tizenrepo/release/common/2_push_gstreamer_packages_to_target.sh
-    $ wget http://10.251.52.177/tizenrepo/release/common/3_install_gstreamer_packages.sh
-
-2. Excute script 1 to download GStreamer packages.
-    $ ./1_get_gstreamer_packages.sh
-
-3. Excute script 2 to push packages to target device.
-    $ ./2_push_gstreamer_packages_to_target.sh [TARGET_DIR: default is /opt/usr/]
-
-4. Excute script 3 on sdb shell to install packages on target.
-    $ sdb root on
-    $ sdb shell
-    # cd [TARGET_DIR]
-    # ./3_install_gstreamer_packages.sh
-
-Coding style
------------
+## Details
+
+1. gclient pulls chromium-efl into "src/tizen_src".
+2. The it runs 3 custom hooks in order to get the rest of the source:
+
+```
+* fetch-src-blink: src/tizen_src/sync_repos.sh is called and
+    pulls in src and src/third_party/WebKit from a pre-defined locations.
+* generate-gclient-xwalk: .gclient-xwalk is created by running
+    src/tizen_src/scripts/xwalkgenerate_gclient-xwalk.py (this is a fork
+    of the same script in xwalk repository).
+* fetch-deps: actually fetches all depedencies in .gclient-xwalk.
+```
+
+## Procedure
+
+1. create .gclient file (as below)
+
+```
+solutions = [
+  { "name"        : "src/tizen_src",
+    "url"         : "git@github.com:crosswalk-project/chromium-efl.git@efl/crosswalk-10/39.0.2171.19",
+    "managed"     : True,
+    "custom_hooks": [
+      {
+        # fetch custom src and blink repositories.
+        "name": "fetch-src-blink",
+        "pattern": ".",
+        "action": ["src/tizen_src/sync_repos.sh"],
+      },
+      {
+        # Generate .gclient-xwalk for Crosswalk's dependencies.
+        "name": "generate-gclient-xwalk",
+        "pattern": ".",
+        "action": ["python", "src/tizen_src/scripts/xwalk/generate_gclient-xwalk.py"],
+      },
+      {
+        # Fetch Crosswalk dependencies.
+        "name": "fetch-deps",
+        "pattern": ".",
+        "action": ["python", "src/xwalk/tools/fetch_deps.py", "-v"],
+      },
+      {
+        # At some point, we will integrate to gyp_xwalk. Not now...
+        "name": "gyp-xwalk",
+      }
+    ],
+    "safesync_url": "",
+  },
+]
+cache_dir = None
+```
+
+2. gclient sync
+
+## Building
+
+* For Desktop build
+
+    $ ./build/build_desktop.sh [-h|--help] [--skip-gyp] [--skip-ninja] [--ccache] [--debug]
+
+## Coding style
 
 Internally we use the chromium coding style: http://www.chromium.org/developers/coding-style.
 For public headers we follow efl style.
 
-Running content shell
------------
-
-### For Desktop build
-    $ ./out.x64/{Debug,Release}/content_shell_efl --no-sandbox --use-gl=egl [command line flags]
-
-Full list of chromium command line switches can be found at: http://peter.sh/experiments/chromium-co
-mmand-line-switches/
-
-Testing
------------
-
-### Layout tests - Desktop
-Chromium unit tests need functional content_shell app. Before trying to run them make sure content_s
-hell
-is compiled and working.
-
-More information about chromium layout tests can be found at: http://www.chromium.org/developers/tes
-ting/webkit-layout-tests
-
-1. Install necessary dependencies. On some ubuntu boxes this can be done running the following scrip
-t:
-    $ ./src/build/install-build-deps.sh
-2. Execute webkit test runner:
-    $ ./scripts/run-layout-tests <optional arguments>
-
-run-layout-tests script can take multiple extra parameters. The ones listed above are required to ru
-n tests in release
-mode on Ubuntu. Some other useful switches include:
-    --debug               Run tests on debug build of chromium
-    --nocheck-sys-deps    Do not check if necessary dependencies have been installed on target system. Useful when not using supported ubuntu version
-    --help                Display full list of supported command line options
-
-### Crosscompile mobile build
-This is a build mode only for development purposes. It doesn't produce an installable
-rpm package. It might break any time. I warned you! The advantage is that everything
-is built directly on the host and the overhead of gbs is eliminated. Ergo it is fast.
-
-The setup is a bit involved. Let's see. Note that it is quite likely that it will not
-work out-of-box and you have to tailor it to your system.
-
-First you need to have your gbs root directory set up which effectively means you
-should do a gbs mobile build.
-
-Now you need to have corresponding cross compiler. We have sources of cross compiler
-used in gbs so why don't use it? Let's clone tizenbuildtools repo first:
-
-    git clone -b master http://gitorious.org/tizenbuildtools/tizenbuildtools.git
-    cd tizenbuildtools/tools
-
-Now build binutils and cross compiler.
-    ./create_cross_compiler_from_gbs_sysroot \
-          -p ~/toolchains/gcc-4.8-mobile/ \
-          -s ~/GBS-ROOT-2.3-DEV/local/BUILD-ROOTS/scratch.armv7l.0 \
-          -r http://10.251.52.177/tizenrepo/tv_repo/tizen-2.2.1-vd-4.8_20140822.1/repos/base/source
-First parameter (-p) is toolchain prefix. There will land binutils and gcc. Second one is gbs sysroot
-needed to cross compilation. It needs to be prepared (gbs build performed). Third parameter is source
-rpm repository corresponding to binary repository used by gbs(almost always this repository is
-ancestor of repository used by gbs and placed in gbs.conf)
-
-It's recommended to use gold linker. Replace the ld binary in the compiler with gold.
-
-    cd ~/toolchains/gcc-4.8-mobile/bin
-    cp armv7l-tizen-linux-gnueabi-ld armv7l-tizen-linux-gnueabi-ld.normal
-    ln -sf armv7l-tizen-linux-gnueabi-ld.gold armv7l-tizen-linux-gnueabi-ld
-
-Build
-    export GBS_ROOT_PATH=~/GBS-ROOT-2.3-DEV
-    export PATH=~/toolchains/gcc-4.8-mobile/bin:$PATH
-    export CROSS_COMPILE=armv7l-tizen-linux-gnueabi-
-    ./build/cross_build_mobile.sh
-
-Before first deployment of cross compiled binaries ensure that you installed rpm on device.
-Rpm will create necessary, initial configuration e.g. smack permissions.
-
-Deploy:
-    scripts/deploy2device.sh release -o /home/tolszak/workspace/CT/chromium-efl/out.cross.arm
-
-[Optional] Icecc
-You can use ccache and/or icecc by setting up the cc variables and symlinks appropriately.
-This is more or less what I have done before running build_dekstop.sh to set up both:
-
-    cd ~/bin
-    TARBALL=$(/usr/lib/icecc/icecc-create-env --gcc /usr/bin/arm-linux-gnueabi-gcc-4.6 /usr/bin/arm-linux-gnueabi-g++-4.6 | tail -n 1)
-    mv $TARBALL arm-linux-gnueabi-gcc-4.6.3.tar.gz
-    export ICECC_VERSION="$HOME/bin/arm-linux-gnueabi-gcc-4.6.3.tar.gz=arm-linux-gnueabi,$ICECC_VERSION"
-    ln -s /usr/bin/arm-linux-gnueabi-gcc-4.6 arm-linux-gnueabi-gcc
-    ln -s /usr/bin/arm-linux-gnueabi-gcc-4.6 arm-linux-gnueabi-g++
-    export PATH=~/bin:$PATH
-
-    cd /usr/lib/ccache
-    ln -s ../../bin/ccache arm-linux-gnueabi-gcc
-    ln -s ../../bin/ccache arm-linux-gnueabi-g++
-    cd /usr/lib/icecc/bin
-    ln -s ../../bin/icecc arm-linux-gnueabi-gcc
-    ln -s ../../bin/icecc arm-linux-gnueabi-g++
-    cd ~/bin
-
-    export CC_target=arm-linux-gnueabi-gcc
-    export CXX_target=arm-linux-gnueabi-g++
-    export CC_host=gcc
-    export CXX_host=g++
-[Optional] ccache
-    # make symbolic links to your cross compiler
-    ln -s ~/toolchains/gcc-4.8-mobile/bin/armv7l-tizen-linux-gnueabi-gcc armv7l-tizen-linux-gnueabi-gcc
-    ln -s ~/toolchains/gcc-4.8-mobile/bin/armv7l-tizen-linux-gnueabi-g++ armv7l-tizen-linux-gnueabi-g++
-    # add invoke build script with with --ccache parameter
-    cd chromium-efl
-    ./build/cross_build_mobile.sh --ccache
-
-Now let's set up the phone to be able to run it. We need the nss libraries from
-chromium-ewk/thirdparty to be on the phone under /lib. This might not be very safe
-(break other apps) so be sure you make a backup.
-gconf-2 has to be installed as well. Download the rpm from the tizen repositories
-(that gbs is using also) and install.
-
-It is recommended to use scripts/deploy2device.sh to install binaries on device.
+## License
+
+Chromium-efl's code uses the BSD license, see our `LICENSE` file.