aboutsummaryrefslogtreecommitdiff
path: root/project/mavlink-plugin/src/main/scala/com/github/jodersky/sbt/SbtMavlink.scala
blob: 58692cd8fc4da8904aa10618617993e8e0eae869 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.github.jodersky.sbt

import sbt._
import Keys._
import plugins._
import mavlink.MavlinkKeys._
import sbt.Project.Initialize
import com.github.jodersky.mavlink.Main

object SbtMavlink extends AutoPlugin {

  override def requires = JvmPlugin

  lazy val generate = Def.task[Seq[File]] {
    streams.value.log.info("Generating mavlink files...")
    Main.run((mavlinkDialect in Compile).value, (mavlinkTarget in Compile).value).map(_.getAbsoluteFile)
  }

  override val projectSettings: Seq[Setting[_]] = Seq(
    mavlinkTarget in Compile := (sourceManaged in Compile).value,
    mavlinkGenerate in Compile := generate.value,
    sourceGenerators in Compile += (mavlinkGenerate in Compile).taskValue
  )
}