|  | #!/usr/bin/env python3 | 
|  |  | 
|  | import os | 
|  | import argparse | 
|  |  | 
|  | from yaml import load, Loader | 
|  |  | 
|  | SOURCE_FILE_TYPES = [ | 
|  | "verilogSource", | 
|  | "systemVerilogSource", | 
|  | ] | 
|  |  | 
|  |  | 
|  | def get_sources(eda_yml): | 
|  | eda_yml_path = os.path.realpath(eda_yml) | 
|  | current_dir = os.path.dirname(eda_yml_path) | 
|  |  | 
|  | with open(eda_yml_path) as f: | 
|  | data = load(f, Loader=Loader) | 
|  | files = data["files"] | 
|  |  | 
|  | for src in files: | 
|  | if "file_type" not in src.keys(): | 
|  | continue | 
|  |  | 
|  | if src["file_type"] in SOURCE_FILE_TYPES: | 
|  | file_path = os.path.realpath( | 
|  | os.path.join(current_dir, src["name"]) | 
|  | ) | 
|  | basename = os.path.basename(file_path) | 
|  | print(basename) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | parser = argparse.ArgumentParser( | 
|  | description="Get sources from an EDA YAML file produced by fusesoc" | 
|  | ) | 
|  | parser.add_argument("eda_yml", help="An EDA YAML produced by fusesoc") | 
|  |  | 
|  | args = parser.parse_args() | 
|  | get_sources(args.eda_yml) |