mirror of
https://github.com/YosysHQ/yosys
synced 2026-05-25 19:36:21 +00:00
Migrate build system to CMake
See #5895 for details. This commit does not include CI or documentation changes.
This commit is contained in:
parent
9d0cdb8551
commit
9b087b4aa7
207 changed files with 5202 additions and 2294 deletions
29
misc/cmake/script_pass_depends.py
Normal file
29
misc/cmake/script_pass_depends.py
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
"""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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue