Small fix for my previous patch. Do not try to delete a member
[WebKit-https.git] / Tools / gtk / run-with-jhbuild
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
18 import common
19 import os
20 import subprocess
21 import sys
22
23 def install_and_run_jhbuild():
24     installation_prefix = os.path.abspath(common.top_level_path('WebKitBuild', 'Dependencies', 'Root'))
25     source_path = os.path.abspath(common.top_level_path('WebKitBuild', 'Dependencies', 'Source'))
26     jhbuild_source_path = os.path.join(source_path, 'jhbuild')
27
28     if not os.path.exists(source_path):
29         os.makedirs(source_path)
30     if not os.path.exists(installation_prefix):
31         os.makedirs(installation_prefix)
32
33     if not os.path.exists(jhbuild_source_path):
34         process = subprocess.Popen(['git', 'clone', 'git://git.gnome.org/jhbuild'], cwd=source_path)
35         process.wait()
36         if process.returncode != 0:
37             raise Exception('jhbuild git clone failed with return code: %i' % process.returncode)
38
39     # jhbuild is really unhappy about having MAKE defined to something like 'make -j4'
40     # so we just undefine it here.
41     env_without_make = dict(os.environ)
42     if 'MAKE' in env_without_make:
43         del env_without_make['MAKE']
44
45     process = subprocess.Popen(['./autogen.sh', '--prefix=%s' % installation_prefix],
46                                cwd=jhbuild_source_path, env=env_without_make)
47     process.wait()
48     if process.returncode != 0:
49         raise Exception('jhbuild configure failed with return code: %i' % process.returncode)
50
51     process = subprocess.Popen(['make', 'install'], cwd=jhbuild_source_path, env=env_without_make)
52     process.wait()
53     if process.returncode != 0:
54         raise Exception('jhbuild configure failed with return code: %i' % process.returncode)
55
56     process = subprocess.Popen(common.top_level_path('Tools', 'Scripts', 'update-webkitgtk-libs'))
57     process.wait()
58     if process.returncode != 0:
59         raise Exception('jhbuild configure failed with return code: %i' % process.returncode)
60
61 jhbuild_path = common.top_level_path('WebKitBuild', 'Dependencies', 'Root', 'bin', 'jhbuild')
62 if not os.path.exists(jhbuild_path):
63     install_and_run_jhbuild()
64
65 process = subprocess.Popen([jhbuild_path, '--no-interact', '-f', common.top_level_path('Tools', 'gtk', 'jhbuildrc'), 'run'] + sys.argv[1:])
66 process.wait()
67 sys.exit(process.returncode)
68
69
70