3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-05-25 19:36:21 +00:00
yosys/misc/cmake/script_pass_depends.py
Catherine cad5353a2a Migrate build system to CMake
See #5895 for details.

This commit does not include CI or documentation changes.
2026-05-21 23:50:04 +00:00

29 lines
796 B
Python

"""Extracts a list of requirements from a `ScriptPass` command.
Not entirely accurate, but very easy to implement. Should probably be replaced with an implementation
in the kernel that performs the same extraction in a principled way.
"""
import re
import sys
import subprocess
for name in sys.argv[1:]:
output = subprocess.check_output(["./yosys", "-QT", "-p", f"help {name}"], encoding="ascii")
header = False
passes = []
for line in output.splitlines():
if line == "The following commands are executed by this synthesis command:":
header = True
continue
if header:
if m := re.match(r"^ \s*(\w+)", line):
passes.append(m[1])
if not header:
print(output)
sys.exit(1)
print()
print(f"===> {name}")
for p in sorted(set(passes)):
print(f"\t\t{p}")
print()