diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/scala/chisel3/stage/package.scala | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/stage/package.scala b/src/main/scala/chisel3/stage/package.scala new file mode 100644 index 00000000..851dd400 --- /dev/null +++ b/src/main/scala/chisel3/stage/package.scala @@ -0,0 +1,25 @@ +// See LICENSE for license details. + +package chisel3 + +import firrtl._ +import firrtl.options.OptionsView + +package object stage { + + implicit object ChiselOptionsView extends OptionsView[ChiselOptions] { + + def view(options: AnnotationSeq): ChiselOptions = options + .collect { case a: ChiselOption => a } + .foldLeft(new ChiselOptions()){ (c, x) => + x match { + case _: NoRunFirrtlCompilerAnnotation.type => c.copy(runFirrtlCompiler = false) + case _: PrintFullStackTraceAnnotation.type => c.copy(printFullStackTrace = true) + case ChiselOutputFileAnnotation(f) => c.copy(outputFile = Some(f)) + case ChiselCircuitAnnotation(a) => c.copy(chiselCircuit = Some(a)) + } + } + + } + +} |
