diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2016-05-24 08:28:08 +0000 |
commit | a4e969f4965059196ca948db781e52f7cfebf19e (patch) | |
tree | 6ca352808c8fdc52006a0f33f6ae3c593b23867d /Tools/jhbuild | |
parent | 41386e9cb918eed93b3f13648cbef387e371e451 (diff) | |
download | WebKitGtk-tarball-a4e969f4965059196ca948db781e52f7cfebf19e.tar.gz |
webkitgtk-2.12.3webkitgtk-2.12.3
Diffstat (limited to 'Tools/jhbuild')
-rw-r--r-- | Tools/jhbuild/jhbuildutils.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Tools/jhbuild/jhbuildutils.py b/Tools/jhbuild/jhbuildutils.py new file mode 100644 index 000000000..c00160e7e --- /dev/null +++ b/Tools/jhbuild/jhbuildutils.py @@ -0,0 +1,56 @@ +import glob +import os.path +import sys +import __builtin__ + +top_level_dir = None + + +def top_level_path(*args): + global top_level_dir + if not top_level_dir: + top_level_dir = os.path.join(os.path.dirname(__file__), '..', '..') + return os.path.join(*(top_level_dir,) + args) + + +def get_dependencies_path(platform): + dependencies_dir = "%s%s" % ('Dependencies', platform.upper()) + if 'WEBKIT_OUTPUTDIR' in os.environ: + return os.path.abspath(os.path.join(os.environ['WEBKIT_OUTPUTDIR'], dependencies_dir)) + else: + return os.path.abspath(top_level_path('WebKitBuild', dependencies_dir)) + + +def get_config_file_for_platform(platform): + return top_level_path('Tools', platform, 'jhbuildrc') + + +def enter_jhbuild_environment_if_available(platform): + if not os.path.exists(get_dependencies_path(platform)): + return False + + # Sometimes jhbuild chooses to install in a way that reads the library from the source directory, so fall + # back to that method. + source_path = os.path.join(get_dependencies_path(platform), "Source", "jhbuild") + sys.path.insert(0, source_path) + + # When loading jhbuild from the source checkout it fails if the SRCDIR, PKGDATADIR or DATADIR aren't present. + __builtin__.__dict__['SRCDIR'] = source_path + __builtin__.__dict__['PKGDATADIR'] = None + __builtin__.__dict__['DATADIR'] = None + + # We don't know the Python version, so we just assume that we can safely take the first one in the list. + site_packages_path = glob.glob(os.path.join(get_dependencies_path(platform), "Root", "lib", "*", "site-packages")) + if len(site_packages_path): + site_packages_path = site_packages_path[0] + sys.path.insert(0, site_packages_path) + + try: + import jhbuild.config + from jhbuild.errors import FatalError + config = jhbuild.config.Config(get_config_file_for_platform(platform), []) + except FatalError, exception: + sys.stderr.write('Could not load jhbuild config file: %s\n' % exception.args[0]) + return False + + return True |