25 lines
890 B
Python
25 lines
890 B
Python
"""Prepare an interpreter that can run the icon generator without a Hermes install.
|
|
|
|
Pillow and resvg-py are core runtime dependencies, so builders that have no
|
|
Hermes runtime environment (desktop bundles, product staging) render icons on
|
|
the locked runtime dependencies alone, without installing the application.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
# Builders import this file from a separately prepared source tree.
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
sys.path.insert(0, str(ROOT))
|
|
|
|
import pm
|
|
|
|
|
|
def prepare_icon_environment(source: Path, out: Path, cache: Path | None) -> Path:
|
|
"""Prepare a fresh interpreter with the locked runtime dependencies only."""
|
|
return pm.build_environment(
|
|
source=source.resolve(), out=out.resolve(), cache=cache.resolve() if cache else None,
|
|
no_install_project=True, explicit=True,
|
|
)
|