aboutsummaryrefslogtreecommitdiff
path: root/project/Jni.scala
diff options
context:
space:
mode:
Diffstat (limited to 'project/Jni.scala')
-rw-r--r--project/Jni.scala42
1 files changed, 20 insertions, 22 deletions
diff --git a/project/Jni.scala b/project/Jni.scala
index 8aacf3b..d597269 100644
--- a/project/Jni.scala
+++ b/project/Jni.scala
@@ -11,27 +11,25 @@ object Jni {
val defaultSettings: Seq[Setting[_]] = Seq(
jdkHome := file(sys.env("JAVA_HOME")),
javahHeaderDirectory := (sourceManaged in Native).value / "javah",
- javah := {
-
- val cp = (classDirectory in Compile).value
- for (clazz <- javahClasses.value) {
- val parts = Seq(
- "javah",
- "-d", javahHeaderDirectory.value,
- "-classpath", cp,
- clazz)
- val cmd = parts.mkString(" ")
- val ev = Process(cmd) ! streams.value.log
- if (ev != 0) throw new RuntimeException("Error occured running javah.")
- }
- IO.listFiles(javahHeaderDirectory.value)
- },
- sourceGenerators in Native <+= javah map {headers =>
- headers
- },
- includeDirectories in Native += javahHeaderDirectory.value,
- javah <<= (javah dependsOn (compile in Compile)),
- includeDirectories in Native += jdkHome.value / "include"
- )
+ javah := javahImpl.value,
+ sourceGenerators in Native <+= javah map { headers => headers},
+ includeDirectories in Native += javahHeaderDirectory.value,
+ includeDirectories in Native += jdkHome.value / "include")
+
+ def javahImpl = Def.task {
+ val cps = (internalDependencyClasspath in Compile).value.map(_.data).map(_.getAbsolutePath)
+ val cp = cps.mkString(":")
+ for (clazz <- javahClasses.value) {
+ val parts = Seq(
+ "javah",
+ "-d", javahHeaderDirectory.value,
+ "-classpath", cp,
+ clazz)
+ val cmd = parts.mkString(" ")
+ val ev = Process(cmd) ! streams.value.log
+ if (ev != 0) throw new RuntimeException("Error occured running javah.")
+ }
+ IO.listFiles(javahHeaderDirectory.value)
+ }
}