@@ -13,7 +13,7 @@ import dfhdl.compiler.stages.verilog.VerilogDialect
13
13
14
14
trait Tool :
15
15
val toolName : String
16
- private def runExec : String =
16
+ final protected def runExec : String =
17
17
val osName : String = sys.props(" os.name" ).toLowerCase
18
18
if (osName.contains(" windows" )) windowsBinExec else binExec
19
19
protected def binExec : String
@@ -110,7 +110,8 @@ trait Tool:
110
110
final protected def exec [D <: Design ](
111
111
cmd : String ,
112
112
prepare : => Unit = (),
113
- loggerOpt : Option [Tool .ProcessLogger ] = None
113
+ loggerOpt : Option [Tool .ProcessLogger ] = None ,
114
+ runExec : String = this .runExec
114
115
)(using CompilerOptions , ToolOptions , MemberGetSet ): Unit =
115
116
preCheck()
116
117
prepare
@@ -211,12 +212,13 @@ trait VHDLLinter extends Linter, VHDLTool:
211
212
212
213
trait Simulator extends Tool :
213
214
val simRunsLint : Boolean = false
215
+ protected def simRunExec : String = this .runExec
214
216
final def simulate [D <: Design ](
215
217
cd : CompiledDesign [D ]
216
218
)(using CompilerOptions , SimulatorOptions ): CompiledDesign [D ] =
217
219
given MemberGetSet = cd.stagedDB.getSet
218
220
if (simRunsLint) this .asInstanceOf [Linter ].lint(cd)
219
- exec(simulateCmdFlags, simulatePrepare(), simulateLogger)
221
+ exec(simulateCmdFlags, simulatePrepare(), simulateLogger, simRunExec )
220
222
cd
221
223
protected def simulatePrepare ()(using CompilerOptions , SimulatorOptions , MemberGetSet ): Unit = {}
222
224
protected def simulateLogger (using
0 commit comments