summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorSchuyler Eldridge2019-02-01 03:17:15 -0500
committerSchuyler Eldridge2019-05-22 16:17:17 -0400
commit06c5e3e82f7dd4aa8ce159aa4c13b9bc36abce96 (patch)
treebcad3348588d09e18c9b5ca0cf6902340fab002e /src/main
parentf592422fc1dcc374139bbeb84a814134c5e58ac4 (diff)
Add ChiselOptionsView
Co-Authored-By: Schuyler Eldridge <schuyler.eldridge@ibm.com> Co-Authored-By: chick <chick@qrhino.com> Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/chisel3/stage/package.scala25
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))
+ }
+ }
+
+ }
+
+}