From 8d95cb43374fcebfc390be63b792c6a36fe2744e Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 25 Mar 2015 11:55:56 +0100 Subject: include more information in generated-file header --- .../src/main/scala/com/github/jodersky/mavlink/Context.scala | 3 ++- .../src/main/scala/com/github/jodersky/mavlink/Generator.scala | 8 ++++++-- mavlink-library/src/main/twirl/org/mavlink/_header.scala.txt | 7 ++++++- .../src/test/scala/com/github/jodersky/mavlink/MainTest.scala | 2 +- .../main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala | 2 +- 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("") + * + * 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 -- cgit v1.2.3