aboutsummaryrefslogtreecommitdiff
path: root/project/JNIBuild.scala
blob: ed0d05e43769b0ab39bbef847b43f3e52f41dd38 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sbt._
import Keys._

object JNIBuild {
  val jdkHome = SettingKey[File]("jdk-home", "Home of JDK.")
  val javaClass = SettingKey[String]("jni-class", "Fully qualified name of class containing native declarations.")

  val javah = TaskKey[Unit]("javah", "Generate JNI headers.")

  val javahTask = javah <<= (javaClass, NativeBuild.sourceDirectory, Keys.classDirectory in Compile) map { (j, src, cp) =>
    val cmd = "javah -d " + src.absolutePath + " -classpath " + cp.absolutePath + " " + j
    cmd !;
    {}
  } dependsOn (Keys.compile in Compile)

  val defaults: Seq[Setting[_]] = NativeBuild.defaults ++ Seq(
    javahTask,
    NativeBuild.compile <<= NativeBuild.compile.dependsOn(javah)
    )

}