aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-03-25 11:55:56 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-25 11:55:56 +0100
commit8d95cb43374fcebfc390be63b792c6a36fe2744e (patch)
treedf8a9ad109a6564f73a282966ffbdcad57df9e4a
parent5d196766317235887ad535ac6c3d75b26658f3e6 (diff)
downloadsbt-mavlink-8d95cb43374fcebfc390be63b792c6a36fe2744e.tar.gz
sbt-mavlink-8d95cb43374fcebfc390be63b792c6a36fe2744e.tar.bz2
sbt-mavlink-8d95cb43374fcebfc390be63b792c6a36fe2744e.zip
include more information in generated-file header
-rw-r--r--mavlink-library/src/main/scala/com/github/jodersky/mavlink/Context.scala3
-rw-r--r--mavlink-library/src/main/scala/com/github/jodersky/mavlink/Generator.scala8
-rw-r--r--mavlink-library/src/main/twirl/org/mavlink/_header.scala.txt7
-rw-r--r--mavlink-library/src/test/scala/com/github/jodersky/mavlink/MainTest.scala2
-rw-r--r--mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala2
5 files changed, 16 insertions, 6 deletions
diff --git a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Context.scala b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Context.scala
index 7986b62..5905014 100644
--- a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Context.scala
+++ b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Context.scala
@@ -2,5 +2,6 @@ package com.github.jodersky.mavlink
/** Represents the context under which MAVLink scala code was generated. */
case class Context(
- version: Option[String]
+ version: Option[String],
+ name: String
) \ No newline at end of file
diff --git a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Generator.scala b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Generator.scala
index ff7970d..71e0f54 100644
--- a/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Generator.scala
+++ b/mavlink-library/src/main/scala/com/github/jodersky/mavlink/Generator.scala
@@ -10,8 +10,9 @@ import trees._
/**
* Generates Scala code implementing the MAVLink protocol.
* @param dialect a specific MAVLink dialect for which to generate code
+ * @param name name of the dialect
*/
-class Generator(dialect: Dialect) {
+class Generator(dialect: Dialect, name: String) {
import Generator._
lazy val maxPayloadLength = dialect.messages.map(_.length).max
@@ -29,7 +30,10 @@ class Generator(dialect: Dialect) {
case class Target(path: String, generate: () => String)
def targets: List[Target] = {
- val context = Context(dialect.version)
+ val context = Context(
+ dialect.version,
+ name
+ )
List(
Target(targetFiles(0), () => org.mavlink.txt.Assembler(context).body),
Target(targetFiles(1), () => org.mavlink.txt.Crc(context).body),
diff --git a/mavlink-library/src/main/twirl/org/mavlink/_header.scala.txt b/mavlink-library/src/main/twirl/org/mavlink/_header.scala.txt
index 3fd5da9..7dfb1c9 100644
--- a/mavlink-library/src/main/twirl/org/mavlink/_header.scala.txt
+++ b/mavlink-library/src/main/twirl/org/mavlink/_header.scala.txt
@@ -1,5 +1,10 @@
@(__context: Context)/*
* MAVLink Abstraction Layer for Scala.
*
- * This file was automatically generated.
+ * Protocol version: 1.0
+ *
+ * Dialect name: "@__context.name"
+ * Dialect version: @__context.version.getOrElse("<unspecified>")
+ *
+ * This file was automatically generated on @{(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new java.util.Date)}
*/ \ No newline at end of file
diff --git a/mavlink-library/src/test/scala/com/github/jodersky/mavlink/MainTest.scala b/mavlink-library/src/test/scala/com/github/jodersky/mavlink/MainTest.scala
index be46212..de3b632 100644
--- a/mavlink-library/src/test/scala/com/github/jodersky/mavlink/MainTest.scala
+++ b/mavlink-library/src/test/scala/com/github/jodersky/mavlink/MainTest.scala
@@ -8,7 +8,7 @@ object MainTest {
val parser: Parser = new Parser(StandardReporter)
val dialectDefinitionFile: File = new File("mavlink-library/src/test/resources/including.xml")
val dialect = parser.parseDialect(dialectDefinitionFile)
- val generator = new Generator(dialect)
+ val generator = new Generator(dialect, "test")
println(generator.targets.map(_.generate()).mkString("\n\n"))
}
diff --git a/mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala b/mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala
index 9f9884d..731e712 100644
--- a/mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala
+++ b/mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala
@@ -41,7 +41,7 @@ object SbtMavlink extends AutoPlugin {
targetFiles map (_.getAbsoluteFile)
} else {
val dialect = new Parser(reporter).parseDialect(dialectDefinitionFile)
- val targets = new Generator(dialect).targets
+ val targets = new Generator(dialect, dialectDefinitionFile.base).targets
for (tgt <- targets) yield {
val file = outDirectory / tgt.path