import subprocess import json import sys import os # Read ignored dependencies from ENV ignore_deps = set(os.environ.get("BUILDREQ_IGNORE_DEP", "").split()) # Run introspection command deps_json = json.loads( subprocess.run([sys.argv[1], "introspect", "--dependencies", "meson.build"], capture_output=True, text=True).stdout ) # Build deps dictionary while skipping ignored libraries deps = {entry['name']: entry['version'] for entry in deps_json if entry['name'] not in ignore_deps} # Output formatted build requirements for lib, versions in deps.items(): version_str = ' ' + ' '.join(versions) if versions else '' line = [] for prefix in ["cmake", "pkgconfig", "qmake"]: buildreq = f"{prefix}({lib}){version_str}" # Strip trailing '=' if version was empty if buildreq.split('=')[-1] == '' and '=' in buildreq: buildreq = buildreq.split('=')[0] line.append(buildreq) print(f"({' or '.join(line)})")