From: Tim 'mithro' Ansell Date: Tue, 19 Apr 2016 05:57:56 +0000 (+1000) Subject: Make verilator build output error messages. X-Git-Tag: 24jan2021_ls180~1970^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d9b598368ff594404fc4e4b033358d792895bc07;p=litex.git Make verilator build output error messages. --- diff --git a/litex/build/sim/verilator.py b/litex/build/sim/verilator.py index 25accae6..19dcc83c 100644 --- a/litex/build/sim/verilator.py +++ b/litex/build/sim/verilator.py @@ -101,12 +101,17 @@ make -j -C obj_dir/ -f Vdut.mk Vdut tools.write_to_file(build_script_file, build_script_contents, force_unix=True) _build_tb(platform, vns, serial, os.path.join(sim_directory, "dut_tb.cpp")) + p = subprocess.Popen(["bash", build_script_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + output, _ = p.communicate() + output = output.decode('utf-8') + if p.returncode != 0: + error_messages = [] + for l in output.splitlines(): + if verbose or "error" in l.lower(): + error_messages.append(l) + raise OSError("Subprocess failed with {}\n{}".format(p.returncode, "\n".join(error_messages))) if verbose: - r = subprocess.call(["bash", build_script_file]) - else: - r = subprocess.call(["bash", build_script_file], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) - if r != 0: - raise OSError("Subprocess failed") + print(output) def _run_sim(build_name):