aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/ExecutionOptionsManager.scala
diff options
context:
space:
mode:
authorAdam Izraelevitz2016-11-23 11:57:02 -0800
committerJack Koenig2016-11-23 11:57:02 -0800
commit66d3ec0498a73319a914eeffcb4e0b1109b5f4c5 (patch)
tree325066fd05cc72b544d3b4d78d646e1a864119f3 /src/main/scala/firrtl/ExecutionOptionsManager.scala
parent9a967a27aa8bb51f4b62969d2889f9a9caa48e31 (diff)
Stringified annotations (#367)
Restricts annotations to be string-based (and thus less typesafe) Makes annotations more easily serializable and interact with Chisel
Diffstat (limited to 'src/main/scala/firrtl/ExecutionOptionsManager.scala')
-rw-r--r--src/main/scala/firrtl/ExecutionOptionsManager.scala29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/main/scala/firrtl/ExecutionOptionsManager.scala b/src/main/scala/firrtl/ExecutionOptionsManager.scala
index 704992c2..f91f45c5 100644
--- a/src/main/scala/firrtl/ExecutionOptionsManager.scala
+++ b/src/main/scala/firrtl/ExecutionOptionsManager.scala
@@ -2,7 +2,7 @@
package firrtl
-import firrtl.Annotations._
+import firrtl.annotations._
import firrtl.Parser._
import firrtl.passes.memlib.{InferReadWriteAnnotation, ReplSeqMemAnnotation}
import firrtl.passes.clocklist.ClockListAnnotation
@@ -142,7 +142,8 @@ case class FirrtlExecutionOptions(
inferRW: Seq[String] = Seq.empty,
firrtlSource: Option[String] = None,
customTransforms: Seq[Transform] = List.empty,
- annotations: List[Annotation] = List.empty)
+ annotations: List[Annotation] = List.empty,
+ annotationFileNameOverride: String = "")
extends ComposableOptions {
@@ -192,6 +193,15 @@ case class FirrtlExecutionOptions(
def getOutputFileName(optionsManager: ExecutionOptionsManager): String = {
optionsManager.getBuildFileName(outputSuffix, outputFileNameOverride)
}
+ /**
+ * build the annotation file name, taking overriding parameters
+ *
+ * @param optionsManager this is needed to access build function and its common options
+ * @return
+ */
+ def getAnnotationFileName(optionsManager: ExecutionOptionsManager): String = {
+ optionsManager.getBuildFileName("anno", annotationFileNameOverride)
+ }
}
trait HasFirrtlOptions {
@@ -206,7 +216,7 @@ trait HasFirrtlOptions {
.foreach { x =>
firrtlOptions = firrtlOptions.copy(inputFileNameOverride = x)
}.text {
- "use this to override the top name default, default is empty"
+ "use this to override the default input file name , default is empty"
}
parser.opt[String]("output-file")
@@ -215,8 +225,17 @@ trait HasFirrtlOptions {
foreach { x =>
firrtlOptions = firrtlOptions.copy(outputFileNameOverride = x)
}.text {
- "use this to override the default name, default is empty"
- }
+ "use this to override the default output file name, default is empty"
+ }
+
+ parser.opt[String]("annotation-file")
+ .abbr("faf")
+ .valueName ("<output>").
+ foreach { x =>
+ firrtlOptions = firrtlOptions.copy(outputFileNameOverride = x)
+ }.text {
+ "use this to override the default annotation file name, default is empty"
+ }
parser.opt[String]("compiler")
.abbr("X")