Source code for rez.bind.rezgui

# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the Rez Project


"""
Binds rez-gui as a rez package.
"""
from __future__ import absolute_import
import rez
from rez.package_maker import make_package
from rez.bind._utils import check_version, make_dirs
from rez.system import system
from rez.vendor.version.version import Version
from rez.utils.lint_helper import env
from rez.utils.execution import create_executable_script
import shutil
import os.path


[docs]def setup_parser(parser): parser.add_argument( "--gui-lib", type=str, default="PyQt-4", metavar="PKG", help="manually specify the gui lib to use (default: %(default)s).")
[docs]def commands(): env.PYTHONPATH.append('{this.root}') env.PATH.append('{this.root}/bin')
[docs]def rez_gui_source(): from rez.cli._main import run run("gui")
[docs]def bind(path, version_range=None, opts=None, parser=None): rez_version = Version(rez.__version__) check_version(rez_version, version_range) rez_major_version = rez_version.trim(1) rez_major_minor_version = rez_version.trim(2) next_major = int(str(rez_major_version)) + 1 rez_req_str = "rez-%s+<%d" % (str(rez_major_minor_version), next_major) gui_lib = getattr(opts, "gui_lib", "") def make_root(variant, root): # copy source rez_path = rez.__path__[0] site_path = os.path.dirname(rez_path) rezgui_path = os.path.join(site_path, "rezgui") shutil.copytree(rezgui_path, os.path.join(root, "rezgui")) # create rez-gui executable binpath = make_dirs(root, "bin") filepath = os.path.join(binpath, "rez-gui") create_executable_script(filepath, rez_gui_source) # create package with make_package("rezgui", path, make_root=make_root) as pkg: pkg.version = rez_version pkg.variants = [system.variant] pkg.commands = commands pkg.tools = ["rez-gui"] pkg.requires = [rez_req_str] if gui_lib: pkg.requires.append(gui_lib) return pkg.installed_variants