diff options
| author | Adam Izraelevitz | 2017-08-31 23:28:49 -0700 |
|---|---|---|
| committer | GitHub | 2017-08-31 23:28:49 -0700 |
| commit | f64ebc82689605fe443368fe798ea34be9c8d028 (patch) | |
| tree | ccf9b8fb2d6b825898571678a892c2a92483266a | |
| parent | f3c0e9e4b268c69d49ef8c18e41c7f75398bb8cf (diff) | |
Added option to emit final annotations (#649)
* Added option to emit final annotations
* Removed extra > from output-anno-file
* Removed other extra > from input-anno-file
| -rw-r--r-- | src/main/scala/firrtl/Driver.scala | 12 | ||||
| -rw-r--r-- | src/main/scala/firrtl/ExecutionOptionsManager.scala | 14 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/Driver.scala b/src/main/scala/firrtl/Driver.scala index 1f0741fd..76a2e4f8 100644 --- a/src/main/scala/firrtl/Driver.scala +++ b/src/main/scala/firrtl/Driver.scala @@ -202,6 +202,18 @@ object Driver { "" // Should we return something different here? } + // If set, emit final annotations to a file + optionsManager.firrtlOptions.outputAnnotationFileName match { + case "" => + case file => + val filename = optionsManager.getBuildFileName("anno", file) + val outputFile = new java.io.PrintWriter(filename) + finalState.annotations.map { + case annos => outputFile.write(annos.annotations.mkString("\n")) + } + outputFile.close() + } + FirrtlExecutionSuccess(firrtlConfig.compilerName, emittedRes) } } diff --git a/src/main/scala/firrtl/ExecutionOptionsManager.scala b/src/main/scala/firrtl/ExecutionOptionsManager.scala index 8aa23f70..e0bd1975 100644 --- a/src/main/scala/firrtl/ExecutionOptionsManager.scala +++ b/src/main/scala/firrtl/ExecutionOptionsManager.scala @@ -155,6 +155,7 @@ case class FirrtlExecutionOptions( customTransforms: Seq[Transform] = List.empty, annotations: List[Annotation] = List.empty, annotationFileNameOverride: String = "", + outputAnnotationFileName: String = "", forceAppendAnnoFile: Boolean = false, emitOneFilePerModule: Boolean = false, dontCheckCombLoops: Boolean = false, @@ -283,8 +284,8 @@ trait HasFirrtlOptions { parser.opt[String]("annotation-file") .abbr("faf") - .valueName ("<output>"). - foreach { x => + .valueName ("<input-anno-file>") + .foreach { x => firrtlOptions = firrtlOptions.copy(annotationFileNameOverride = x) }.text { "use this to override the default annotation file name, default is empty" @@ -298,6 +299,15 @@ trait HasFirrtlOptions { "use this to force appending annotation file to annotations being passed in through optionsManager" } + parser.opt[String]("output-annotation-file") + .abbr("foaf") + .valueName ("<output-anno-file>") + .foreach { x => + firrtlOptions = firrtlOptions.copy(outputAnnotationFileName = x) + }.text { + "use this to set the annotation output file" + } + parser.opt[String]("compiler") .abbr("X") .valueName ("<high|middle|low|verilog>") |
