#
# Copyright (C) 2016 Codethink Limited
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see .
#
# Authors:
# Tristan Van Berkom
import os
import shutil
import subprocess
#
# Private module declaring some info about where the buildstream
# is installed so we can lookup package relative resources easily
#
# The package root, wherever we are running the package from
root = os.path.dirname(os.path.abspath(__file__))
# The Element plugin directory
element_plugins = os.path.join(root, 'plugins', 'elements')
# The Source plugin directory
source_plugins = os.path.join(root, 'plugins', 'sources')
# Default user configuration
default_user_config = os.path.join(root, 'data', 'userconfig.yaml')
# Default project configuration
default_project_config = os.path.join(root, 'data', 'projectconfig.yaml')
# Script template to call module building scripts
build_all_template = os.path.join(root, 'data', 'build-all.sh.in')
# Module building script template
build_module_template = os.path.join(root, 'data', 'build-module.sh.in')
def get_bwrap_version():
# Get the current bwrap version
#
# returns None if no bwrap was found
# otherwise returns a tuple of 3 int: major, minor, patch
bwrap_path = shutil.which('bwrap')
if not bwrap_path:
return None
cmd = [bwrap_path, "--version"]
try:
version = str(subprocess.check_output(cmd).split()[1], "utf-8")
except subprocess.CalledProcessError:
return None
return tuple(int(x) for x in version.split("."))