diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-03-23 22:38:17 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-03-23 22:38:17 +0100 |
commit | 19175b88e9a61d3c197a4627aee270de49df5269 (patch) | |
tree | 9543d6a9577d12abbd2cbade8620f57346faece3 /mavlink-plugin/src/main | |
parent | 37842d340dd87391b1288a3e5f91d47dbda59fa5 (diff) | |
download | sbt-mavlink-19175b88e9a61d3c197a4627aee270de49df5269.tar.gz sbt-mavlink-19175b88e9a61d3c197a4627aee270de49df5269.tar.bz2 sbt-mavlink-19175b88e9a61d3c197a4627aee270de49df5269.zip |
implement enum supportv0.4
Diffstat (limited to 'mavlink-plugin/src/main')
-rw-r--r-- | mavlink-plugin/src/main/scala/com/github/jodersky/mavlink/sbt/SbtMavlink.scala | 32 |
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 } } |