aboutsummaryrefslogtreecommitdiff
path: root/mavlink-plugin
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-03-23 22:38:17 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-23 22:38:17 +0100
commit19175b88e9a61d3c197a4627aee270de49df5269 (patch)
tree9543d6a9577d12abbd2cbade8620f57346faece3 /mavlink-plugin
parent37842d340dd87391b1288a3e5f91d47dbda59fa5 (diff)
downloadsbt-mavlink-19175b88e9a61d3c197a4627aee270de49df5269.tar.gz
sbt-mavlink-19175b88e9a61d3c197a4627aee270de49df5269.tar.bz2
sbt-mavlink-19175b88e9a61d3c197a4627aee270de49df5269.zip
implement enum supportv0.4
Diffstat (limited to 'mavlink-plugin')
-rw-r--r--mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala32
1 files changed, 17 insertions, 15 deletions
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 e1b044b..03beaaa 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
@@ -27,6 +27,7 @@ object SbtMavlink extends AutoPlugin {
lazy val generationTask = Def.task[Seq[File]] {
val dialectDefinitionFile = mavlinkDialect.value
+ val outDirectory = mavlinkTarget.value
if (!dialectDefinitionFile.exists) sys.error(
"Dialect definition " + dialectDefinitionFile.getAbsolutePath + " does not exist."
@@ -36,23 +37,24 @@ object SbtMavlink extends AutoPlugin {
def printWarning(msg: String) = streams.value.log.warn(msg)
}
- val dialectDefinition = XML.loadFile(dialectDefinitionFile)
- val dialect = (new Parser(reporter)).parseDialect(dialectDefinition)
- val targets = (new Generator(dialect)).targets
-
- val outDirectory = mavlinkTarget.value
-
- val files = for (tgt <- targets) yield {
- val file = outDirectory / tgt.path
-
- if (dialectDefinitionFile.lastModified > file.lastModified) {
- streams.value.log.info("Generating mavlink binding " + file)
- IO.write(file, tgt.generate())
+ val targetFiles = Generator.targetFiles map (outDirectory / _)
+
+ if (targetFiles forall (_.lastModified > dialectDefinitionFile.lastModified)) {
+ targetFiles map (_.getAbsoluteFile)
+ } else {
+ val dialectDefinition = XML.loadFile(dialectDefinitionFile)
+ val dialect = (new Parser(reporter)).parseDialect(dialectDefinition)
+ val targets = (new Generator(dialect)).targets
+ for (tgt <- targets) yield {
+ val file = (outDirectory / tgt.path)
+
+ if (dialectDefinitionFile.lastModified > file.lastModified) {
+ streams.value.log.info("Generating mavlink binding " + file)
+ IO.write(file, tgt.generate())
+ }
+ file.getAbsoluteFile
}
- file.getAbsoluteFile
}
-
- files
}
}