summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.sbt7
-rw-r--r--project/plugins.sbt3
-rw-r--r--src/main/scala/chisel3/Driver.scala4
-rw-r--r--src/main/scala/chisel3/internal/firrtl/Emitter.scala4
4 files changed, 17 insertions, 1 deletions
diff --git a/build.sbt b/build.sbt
index f932ccc9..09bf75ba 100644
--- a/build.sbt
+++ b/build.sbt
@@ -101,6 +101,13 @@ lazy val chiselFrontend = (project in file("chiselFrontend")).
dependsOn(coreMacros)
lazy val chisel = (project in file(".")).
+ enablePlugins(BuildInfoPlugin).
+ settings(
+ // We should really be using name.value, but currently, the package is "Chisel" (uppercase first letter)
+ buildInfoPackage := /* name.value */ "chisel3",
+ buildInfoOptions += BuildInfoOption.BuildTime,
+ buildInfoKeys := Seq[BuildInfoKey](buildInfoPackage, version, scalaVersion, sbtVersion)
+ ).
settings(commonSettings: _*).
settings(customUnidocSettings: _*).
settings(chiselSettings: _*).
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 58166621..5ff66b4f 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -14,4 +14,7 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.5.4")
addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.8.2")
+addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.6.1")
+
addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.3.3")
+
diff --git a/src/main/scala/chisel3/Driver.scala b/src/main/scala/chisel3/Driver.scala
index 190b36bf..b0c7aeda 100644
--- a/src/main/scala/chisel3/Driver.scala
+++ b/src/main/scala/chisel3/Driver.scala
@@ -7,6 +7,7 @@ import java.io._
import internal._
import internal.firrtl._
+import BuildInfo._
trait BackendCompilationUtilities {
/** Create a temporary directory with the prefix name. Exists here because it doesn't in Java 6.
@@ -135,4 +136,7 @@ object Driver extends BackendCompilationUtilities {
}
def targetDir(): String = { target_dir getOrElse new File(".").getCanonicalPath }
+
+ val version = BuildInfo.version
+ val chiselVersionString = BuildInfo.toString
}
diff --git a/src/main/scala/chisel3/internal/firrtl/Emitter.scala b/src/main/scala/chisel3/internal/firrtl/Emitter.scala
index f1908089..e0daa95c 100644
--- a/src/main/scala/chisel3/internal/firrtl/Emitter.scala
+++ b/src/main/scala/chisel3/internal/firrtl/Emitter.scala
@@ -102,7 +102,9 @@ private class Emitter(circuit: Circuit) {
private def unindent() { require(indentLevel > 0); indentLevel -= 1 }
private def withIndent(f: => Unit) { indent(); f; unindent() }
- private val res = new StringBuilder(s"circuit ${circuit.name} : ")
+ private val res = new StringBuilder()
+ res ++= s";${Driver.chiselVersionString}\n"
+ res ++= s"circuit ${circuit.name} : "
withIndent { circuit.components.foreach(c => res ++= emit(c)) }
res ++= newline
}