Global: Move PyOpenColorIO to vendor/python so that DCCs don't conflict with their own

This commit is contained in:
Alex 2023-05-12 12:24:27 +10:00 committed by Jakub Trllo
parent ad1453576d
commit facf4fdc65
2 changed files with 31 additions and 15 deletions

View file

@ -67,40 +67,43 @@ def _print(msg: str, message_type: int = 0) -> None:
print(f"{header}{msg}")
def install_qtbinding(pyproject, openpype_root, platform_name):
_print("Handling Qt binding framework ...")
qtbinding_def = pyproject["openpype"]["qtbinding"][platform_name]
package = qtbinding_def["package"]
version = qtbinding_def.get("version")
qtbinding_arg = None
def _pip_install(openpype_root, package, version=None):
arg = None
if package and version:
qtbinding_arg = f"{package}=={version}"
arg = f"{package}=={version}"
elif package:
qtbinding_arg = package
arg = package
if not qtbinding_arg:
_print("Didn't find Qt binding to install")
if not arg:
_print("Couldn't find package to install")
sys.exit(1)
_print(f"We'll install {qtbinding_arg}")
_print(f"We'll install {arg}")
python_vendor_dir = openpype_root / "vendor" / "python"
try:
subprocess.run(
[
sys.executable,
"-m", "pip", "install", "--upgrade", qtbinding_arg,
"-m", "pip", "install", "--upgrade", arg,
"-t", str(python_vendor_dir)
],
check=True,
stdout=subprocess.DEVNULL
)
except subprocess.CalledProcessError as e:
_print("Error during PySide2 installation.", 1)
_print(f"Error during {package} installation.", 1)
_print(str(e), 1)
sys.exit(1)
def install_qtbinding(pyproject, openpype_root, platform_name):
_print("Handling Qt binding framework ...")
qtbinding_def = pyproject["openpype"]["qtbinding"][platform_name]
package = qtbinding_def["package"]
version = qtbinding_def.get("version")
_pip_install(openpype_root, package, version)
# Remove libraries for QtSql which don't have available libraries
# by default and Postgre library would require to modify rpath of
# dependency
@ -112,6 +115,14 @@ def install_qtbinding(pyproject, openpype_root, platform_name):
os.remove(str(filepath))
def install_opencolorio(pyproject, openpype_root):
_print("Installing PyOpenColorIO")
opencolorio_def = pyproject["openpype"]["opencolorio"]
package = opencolorio_def["package"]
version = opencolorio_def.get("version")
_pip_install(openpype_root, package, version)
def install_thirdparty(pyproject, openpype_root, platform_name):
_print("Processing third-party dependencies ...")
try:
@ -221,6 +232,7 @@ def main():
pyproject = toml.load(openpype_root / "pyproject.toml")
platform_name = platform.system().lower()
install_qtbinding(pyproject, openpype_root, platform_name)
install_opencolorio(pyproject, openpype_root)
install_thirdparty(pyproject, openpype_root, platform_name)
end_time = time.time_ns()
total_time = (end_time - start_time) / 1000000000