Tools/ChangeLog

 12012-03-02 Dominik Röttsches <dominik.rottsches@linux.intel.com>
 2
 3 [EFL] Add and use run-with-jhbuild and update-webkitefl-libs scripts for EFL
 4 https://bugs.webkit.org/show_bug.cgi?id=79904
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 * Scripts/update-webkitefl-libs: Added.
 9 * Scripts/webkitdirs.pm:
 10 (jhbuildWrapperPrefixIfNeeded):
 11 (generateBuildSystemFromCMakeProject):
 12 (buildCMakeGeneratedProject):
 13 * efl/common.py: Added.
 14 (script_path):
 15 (top_level_path):
 16 (number_of_cpus):
 17 * efl/jhbuild.modules: Added.
 18 * efl/jhbuildrc: Added.
 19 * efl/run-with-jhbuild: Added.
 20
1212012-02-28 Dominik Röttsches <dominik.rottsches@linux.intel.com>
222
323 Parametrize run-with-jhbuild and update-webkitgtk-libs with platform --gtk/--efl

Tools/Scripts/update-webkitefl-libs

 1#!/usr/bin/perl -w
 2# Copyright (C) 2012 Intel Corporation
 3#
 4# This library is free software; you can redistribute it and/or
 5# modify it under the terms of the GNU Lesser General Public
 6# License as published by the Free Software Foundation; either
 7# version 2 of the License, or (at your option) any later version.
 8#
 9# This library is distributed in the hope that it will be useful,
 10# but WITHOUT ANY WARRANTY; without even the implied warranty of
 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 12# Lesser General Public License for more details.
 13#
 14# You should have received a copy of the GNU Lesser General Public
 15# License along with this library; if not, write to the Free Software
 16# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 17
 18use FindBin;
 19use lib $FindBin::Bin;
 20use webkitdirs;
 21
 22my $scriptsDir = relativeScriptsDir();
 23system("perl", "$scriptsDir/update-webkit-libs-jhbuild", "--efl", sys.argv) == 0 or die $!;

Tools/Scripts/webkitdirs.pm

@@sub buildAutotoolsProject($@)
19641964 return 0;
19651965}
19661966
 1967sub jhbuildWrapperPrefixIfNeeded()
 1968{
 1969 if (isEfl()) {
 1970 return File::Spec->catfile(sourceDir(), "Tools", "efl", "run-with-jhbuild");
 1971 } else {
 1972 return "";
 1973 }
 1974}
 1975
19671976sub generateBuildSystemFromCMakeProject
19681977{
19691978 my ($port, $prefixPath, @cmakeArgs, $additionalCMakeArgs) = @_;

@@sub generateBuildSystemFromCMakeProject
19891998
19901999 # We call system("cmake @args") instead of system("cmake", @args) so that @args is
19912000 # parsed for shell metacharacters.
1992  my $returnCode = system("cmake @args");
 2001 my $wrapper = jhbuildWrapperPrefixIfNeeded() . " ";
 2002 my $returnCode = system($wrapper . "cmake @args");
19932003
19942004 chdir($originalWorkingDirectory);
19952005 return $returnCode;

@@sub buildCMakeGeneratedProject($)
20082018
20092019 # We call system("cmake @args") instead of system("cmake", @args) so that @args is
20102020 # parsed for shell metacharacters. In particular, $makeArgs may contain such metacharacters.
2011  return system("cmake @args");
 2021 my $wrapper = jhbuildWrapperPrefixIfNeeded() . " ";
 2022 return system($wrapper . "cmake @args");
20122023}
20132024
20142025sub cleanCMakeGeneratedProject()

Tools/efl/common.py

 1#!/usr/bin/env python
 2# Copyright (C) 2011 Igalia S.L.
 3#
 4# This library is free software; you can redistribute it and/or
 5# modify it under the terms of the GNU Lesser General Public
 6# License as published by the Free Software Foundation; either
 7# version 2 of the License, or (at your option) any later version.
 8#
 9# This library is distributed in the hope that it will be useful,
 10# but WITHOUT ANY WARRANTY; without even the implied warranty of
 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 12# Lesser General Public License for more details.
 13#
 14# You should have received a copy of the GNU Lesser General Public
 15# License along with this library; if not, write to the Free Software
 16# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 17
 18import os
 19import subprocess
 20import sys
 21
 22script_dir = None
 23
 24
 25def script_path(*args):
 26 global script_dir
 27 if not script_dir:
 28 script_dir = os.path.join(os.path.dirname(__file__), '..', 'Scripts')
 29 return os.path.join(*(script_dir,) + args)
 30
 31
 32def top_level_path(*args):
 33 return os.path.join(*((script_path('..', '..'),) + args))
 34
 35
 36def number_of_cpus():
 37 process = subprocess.Popen([script_path('num-cpus')], stdout=subprocess.PIPE)
 38 stdout = process.communicate()[0]
 39 return int(stdout)

Tools/efl/jhbuild.modules

 1<?xml version="1.0"?>
 2<!DOCTYPE moduleset SYSTEM "moduleset.dtd">
 3<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
 4<moduleset>
 5
 6 <metamodule id="webkitefl-testing-dependencies">
 7 <dependencies>
 8 <dep package="cairo"/>
 9 <dep package="fonts"/>
 10 <dep package="fontconfig"/>
 11 <dep package="freetype6"/>
 12 <dep package="glib"/>
 13 <dep package="glib-networking"/>
 14 <dep package="libsoup"/>
 15 <dep package="edje"/>
 16 </dependencies>
 17 </metamodule>
 18
 19 <repository type="tarball" name="github.com"
 20 href="https://github.com"/>
 21 <repository type="tarball" name="sourceware.org"
 22 href="ftp://sourceware.org"/>
 23 <repository type="tarball" name="gnupg.org"
 24 href="ftp://ftp.gnupg.org"/>
 25 <repository type="tarball" name="p11-glue.freedesktop.org"
 26 href="http://p11-glue.freedesktop.org"/>
 27 <repository type="tarball" name="ftp.gnome.org"
 28 href="http://ftp.gnome.org"/>
 29 <repository type="git" name="git.gnome.org"
 30 href="git://git.gnome.org/"/>
 31 <repository type="tarball" name="gnu.org"
 32 href="http://ftp.gnu.org/"/>
 33 <repository type="tarball" name="cairographics.org"
 34 href="http://cairographics.org"/>
 35 <repository type="tarball" name="freedesktop.org"
 36 href="http://www.freedesktop.org"/>
 37 <repository type="svn" name="enlightenment.org"
 38 href="http://svn.enlightenment.org/svn/e/trunk/"
 39 trunk-template="%(module)s/"/>
 40
 41 <autotools id="cairo" autogen-sh="configure">
 42 <dependencies>
 43 <dep package="pixman"/>
 44 </dependencies>
 45 <branch module="releases/cairo-1.10.2.tar.gz" version="1.10.2"
 46 repo="cairographics.org"
 47 hash="sha256:32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41"
 48 md5sum="f101a9e88b783337b20b2e26dfd26d5f">
 49 </branch>
 50 </autotools>
 51
 52 <autotools id="pixman" autogen-sh="configure">
 53 <branch module="releases/pixman-0.24.0.tar.gz" version="0.24.0"
 54 repo="cairographics.org"
 55 hash="sha256:a5647c7158f103eedff5fba799018f4169f6b26b573ab7685812ebc9a1c5d2e4"
 56 md5sum="a2d0b120509bdccb10aa7f4bec3730e4">
 57 </branch>
 58 </autotools>
 59
 60
 61 <autotools id="fonts"
 62 skip-autogen="true">
 63 <branch module="downloads/mrobinson/webkitgtk-test-fonts/webkitgtk-test-fonts-0.0.1.tar.gz" version="0.0.1"
 64 repo="github.com"
 65 hash="sha256:df40960ec98bd23de2f6ea8f5135ffc9485929aeddb4f08be5144881a1fd3887"
 66 md5sum="2c752a694f41f3ff7aed6e3015250f69" size="6635293">
 67 </branch>
 68 </autotools>
 69
 70 <autotools id="libffi" autogen-sh="configure">
 71 <branch module="/pub/libffi/libffi-3.0.10.tar.gz" version="3.0.10"
 72 repo="sourceware.org"
 73 hash="sha256:f01eb9027e9eb56aeaeef636649877756d475d714ef8b47f627f65bc5f3b492f"
 74 md5sum="79390673f5d07a8fb342bc09b5055b6f"/>
 75 </autotools>
 76
 77 <tarball id="freetype6">
 78 <source href="download.savannah.gnu.org/releases/freetype/freetype-2.4.2.tar.bz2" version="2.4.2"
 79 hash="sha256:9a987aef8c50d9bcfdfdc9f012f8bd0de6095cc1a5524e62c1a037deb8dacbfe"
 80 md5sum="647ee8ed266f9a4117c8d0a4855b3d3e"/>
 81 </tarball>
 82
 83 <autotools id="p11-kit">
 84 <branch module="/releases/p11-kit-0.9.tar.gz" version="0.9"
 85 repo="p11-glue.freedesktop.org"
 86 hash="sha256:96486f971111f976743be05f2f88b75ced7f14954fad42861b54480c889c66d0"
 87 md5sum="029aa2a3a103e7eb81b4aa731b93539e"/>
 88 </autotools>
 89
 90 <autotools id="libgcrypt" autogen-sh="./autogen.sh; configure">
 91 <branch module="/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2" version="1.5.0"
 92 repo="gnupg.org"
 93 hash="sha256:4b62fc516004940a0571025401a0581d49199f1a76dfb5ce6fd63f50db8173fa"
 94 md5sum="693f9c64d50c908bc4d6e01da3ff76d8"/>
 95 </autotools>
 96
 97 <autotools id="glib">
 98 <dependencies>
 99 <dep package="libffi"/>
 100 </dependencies>
 101 <branch module="/pub/GNOME/sources/glib/2.31/glib-2.31.2.tar.xz" version="2.31.2"
 102 repo="ftp.gnome.org"
 103 hash="sha256:19d7921671a487c3c5759a57df7b8508afdbadd7764d62a47a82fff7b399032b"
 104 md5sum="1cbdf314d7c87916a0c3dce83ac0285f"/>
 105 </autotools>
 106
 107 <autotools id="glib-networking">
 108 <dependencies>
 109 <dep package="gnutls"/>
 110 </dependencies>
 111 <branch module="/pub/GNOME/sources/glib-networking/2.31/glib-networking-2.31.2.tar.xz" version="2.31.2"
 112 repo="ftp.gnome.org"
 113 hash="sha256:03e3a2881d2626d1206e72972531661037fe0d32e745bf9b2f63c0d6f5e32a9c"
 114 md5sum="b649b457bd9fd5e0e9b9c4dcb1a74a37"/>
 115 </autotools>
 116
 117 <autotools id="gnutls"
 118 autogenargs="--enable-ld-version-script --enable-cxx --without-lzo --with-libgcrypt">
 119 <dependencies>
 120 <dep package="libgcrypt"/>
 121 <dep package="p11-kit"/>
 122 </dependencies>
 123 <branch module="/gnu/gnutls/gnutls-2.12.14.tar.bz2" version="2.12.14"
 124 repo="gnu.org"
 125 hash="sha256:5ee72ba6de7a23cf315792561954451e022dac8730149ca95f93c61e95be2ce3"
 126 md5sum="555687a7ffefba0bd9de1e71cb61402c"/>
 127 </autotools>
 128
 129 <autotools id="libsoup" autogenargs="--without-gnome">
 130 <dependencies>
 131 <dep package="glib-networking"/>
 132 </dependencies>
 133 <branch module="libsoup" version="2.37.2.1+git"
 134 repo="git.gnome.org"
 135 tag="5cbfc48caf76ced2e28ee06c9e40523273601dc6"/>
 136 </autotools>
 137
 138 <autotools id="fontconfig" autogen-sh="configure">
 139 <branch module="software/fontconfig/release/fontconfig-2.8.0.tar.gz" version="2.8.0"
 140 repo="freedesktop.org"
 141 hash="sha256:fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335"
 142 md5sum="77e15a92006ddc2adbb06f840d591c0e">
 143 </branch>
 144 </autotools>
 145
 146 <autotools id="eina" >
 147 <branch module="eina"
 148 repo="enlightenment.org"
 149 revision="68629"/>
 150 </autotools>
 151
 152 <autotools id="embryo">
 153 <branch module="embryo"
 154 repo="enlightenment.org"
 155 revision="68629"/>
 156 <dependencies>
 157 <dep package="eina"/>
 158 </dependencies>
 159 </autotools>
 160
 161 <autotools id="evas">
 162 <branch module="evas"
 163 repo="enlightenment.org"
 164 revision="68629"/>
 165 </autotools>
 166
 167 <autotools id="ecore">
 168 <branch module="ecore"
 169 repo="enlightenment.org"
 170 revision="68629"/>
 171 <dependencies>
 172 <dep package="eina"/>
 173 <dep package="evas"/>
 174 </dependencies>
 175 </autotools>
 176
 177 <autotools id="eet">
 178 <branch module="eet"
 179 repo="enlightenment.org"
 180 revision="68629"/>
 181 <dependencies>
 182 <dep package="eina"/>
 183 </dependencies>
 184 </autotools>
 185
 186 <autotools id="edje">
 187 <branch module="edje"
 188 repo="enlightenment.org"
 189 revision="68629"/>
 190 <dependencies>
 191 <dep package="eet"/>
 192 <dep package="ecore"/>
 193 <dep package="evas"/>
 194 <dep package="embryo"/>
 195 </dependencies>
 196 </autotools>
 197
 198</moduleset>

Tools/efl/jhbuildrc

 1#!/usr/bin/env python
 2# Copyright (C) 2011 Igalia S.L.
 3# Copyright (C) 2012 Intel Corporation
 4#
 5# This library is free software; you can redistribute it and/or
 6# modify it under the terms of the GNU Lesser General Public
 7# License as published by the Free Software Foundation; either
 8# version 2 of the License, or (at your option) any later version.
 9#
 10# This library is distributed in the hope that it will be useful,
 11# but WITHOUT ANY WARRANTY; without even the implied warranty of
 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 13# Lesser General Public License for more details.
 14#
 15# You should have received a copy of the GNU Lesser General Public
 16# License along with this library; if not, write to the Free Software
 17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 18
 19import sys
 20
 21__efl_tools_directory = os.path.abspath(os.path.dirname(__file__))
 22sys.path.append(__efl_tools_directory)
 23import common
 24
 25build_policy = 'updated'
 26
 27# FIXME: move shared parts into ../jhbuild folder.
 28
 29__moduleset_file_uri = 'file://' + os.path.join(__efl_tools_directory, 'jhbuild.modules')
 30__extra_modulesets = os.environ.get("WEBKIT_EXTRA_MODULESETS", "").split(",")
 31moduleset = [ __moduleset_file_uri, ]
 32if __extra_modulesets != ['']:
 33 moduleset.extend(__extra_modulesets)
 34
 35__extra_modules = os.environ.get("WEBKIT_EXTRA_MODULES", "").split(",")
 36modules = [ 'webkitefl-testing-dependencies', ]
 37if __extra_modules != ['']:
 38 modules.extend(__extra_modules)
 39
 40checkoutroot = os.path.abspath(common.top_level_path('WebKitBuild','Dependencies', 'Source'))
 41prefix = os.path.abspath(common.top_level_path('WebKitBuild','Dependencies', 'Root'))
 42
 43nonotify = True
 44notrayicon = True
 45os.environ['MAKEFLAGS'] = '-j' + str(common.number_of_cpus())
 46
 47# Use system libraries while building.
 48if use_lib64:
 49 _libdir = 'lib64'
 50else:
 51 _libdir = 'lib'
 52addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', _libdir, 'pkgconfig'))
 53addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))
 54
 55addpath('XDG_DATA_DIRS', '/usr/share')
 56addpath('XDG_CONFIG_DIRS', '/etc/xdg')
 57
 58# GTK+ 3.0.12 misses the -lm flag when linking the tests.
 59module_makeargs['gtk+'] = 'LDFLAGS="-lm" ' + makeargs
 60
 61partial_build = False

Tools/efl/run-with-jhbuild

 1#!/usr/bin/env python
 2# Copyright (C) 2011 Igalia S.L.
 3# Copyright (C) 2012 Intel Corporation
 4#
 5# This library is free software; you can redistribute it and/or
 6# modify it under the terms of the GNU Lesser General Public
 7# License as published by the Free Software Foundation; either
 8# version 2 of the License, or (at your option) any later version.
 9#
 10# This library is distributed in the hope that it will be useful,
 11# but WITHOUT ANY WARRANTY; without even the implied warranty of
 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 13# Lesser General Public License for more details.
 14#
 15# You should have received a copy of the GNU Lesser General Public
 16# License along with this library; if not, write to the Free Software
 17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 18
 19import common
 20import subprocess
 21import sys
 22
 23jhbuild_wrapper = common.top_level_path('Tools', 'jhbuild', 'jhbuild-wrapper')
 24process = subprocess.Popen([jhbuild_wrapper, '--efl'] + sys.argv[1:])
 25process.wait()
 26sys.exit(process.returncode)