if not "PowerPC" in config.root.targets:
    config.unsupported = True

import subprocess

config.suffixes.add(".py")

def get_revision(repo_path):
    cmd = ['git', '-C', repo_path, 'rev-parse', 'HEAD']
    try:
        return subprocess.run(cmd, stdout=subprocess.PIPE, check=True).stdout.decode()
    except Exception as e:
        print("An error occurred retrieving the git revision:", e)
        return None

if config.have_vc_rev:
    if config.force_vc_rev:
        git_revision = config.force_vc_rev
    else:
        git_revision = get_revision(config.llvm_src_root)
    if git_revision:
        config.substitutions.append(("git-revision", git_revision))
        config.available_features.add("vc-rev-enabled")
