Add cache support for jhbuild
[WebKit-https.git] / Tools / jhbuild / jhbuildrc_common.py
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
19 import multiprocessing
20 import sys
21 import os
22
23
24 script_dir = None
25
26
27 def script_path(*args):
28     global script_dir
29     if not script_dir:
30         script_dir = os.path.join(os.path.dirname(__file__), '..', 'Scripts')
31     return os.path.join(*(script_dir,) + args)
32
33
34 def top_level_path(*args):
35     return os.path.join(*((os.path.join(os.path.dirname(__file__), '..', '..'),) + args))
36
37
38 def init(jhbuildrc_globals, platform):
39
40     __tools_directory = os.path.join(os.path.dirname(__file__), "../", platform)
41     sys.path.insert(0, __tools_directory)
42
43     jhbuildrc_globals["build_policy"] = 'updated'
44
45     __moduleset_file_uri = 'file://' + os.path.join(__tools_directory, 'jhbuild.modules')
46     __extra_modulesets = os.environ.get("WEBKIT_EXTRA_MODULESETS", "").split(",")
47     jhbuildrc_globals["moduleset"] = [__moduleset_file_uri, ]
48     if __extra_modulesets != ['']:
49         jhbuildrc_globals["moduleset"].extend(__extra_modulesets)
50
51     __extra_modules = os.environ.get("WEBKIT_EXTRA_MODULES", "").split(",")
52     jhbuildrc_globals["modules"] = ['webkit' + platform + '-testing-dependencies', ]
53     if __extra_modules != ['']:
54         jhbuildrc_globals["modules"].extend(__extra_modules)
55
56     if 'WEBKIT_OUTPUTDIR' in os.environ:
57         jhbuildrc_globals["checkoutroot"] = checkoutroot = os.path.abspath(os.path.join(os.environ['WEBKIT_OUTPUTDIR'], 'Dependencies', 'Source'))
58         jhbuildrc_globals["prefix"] = os.path.abspath(os.path.join(os.environ['WEBKIT_OUTPUTDIR'], 'Dependencies', 'Root'))
59     else:
60         jhbuildrc_globals["checkoutroot"] = checkoutroot = os.path.abspath(top_level_path('WebKitBuild', 'Dependencies', 'Source'))
61         jhbuildrc_globals["prefix"] = os.path.abspath(top_level_path('WebKitBuild', 'Dependencies', 'Root'))
62
63     jhbuildrc_globals["nonotify"] = True
64     jhbuildrc_globals["notrayicon"] = True
65
66     if 'NUMBER_OF_PROCESSORS' in os.environ:
67         jhbuildrc_globals['jobs'] = os.environ['NUMBER_OF_PROCESSORS']
68
69     # Avoid runtime conflicts with GStreamer system-wide plugins. We want
70     # to use only the plugins we build in JHBuild.
71     os.environ['GST_PLUGIN_SYSTEM_PATH'] = ''
72
73     # Use system libraries while building.
74     if jhbuildrc_globals['use_lib64']:
75         _library_dir = 'lib64'
76     else:
77         _library_dir = 'lib'
78     addpath = jhbuildrc_globals['addpath']
79     addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', _library_dir, 'pkgconfig'))
80     addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))
81
82     prefix = jhbuildrc_globals['prefix']
83     addpath('CMAKE_PREFIX_PATH', prefix)
84     addpath('CMAKE_LIBRARY_PATH', os.path.join(prefix, _library_dir))
85
86     if 'JHBUILD_MIRROR' in os.environ:
87         jhbuildrc_globals['dvcs_mirror_dir'] = os.environ['JHBUILD_MIRROR']
88         jhbuildrc_globals['tarballdir'] = os.environ['JHBUILD_MIRROR']