diff options
author | Jakob Odersky <jodersky@gmail.com> | 2013-06-27 19:27:57 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2013-06-27 19:27:57 +0200 |
commit | 719978035732a55261b753bbc33570d3c1f53785 (patch) | |
tree | de110fafce8b2ca11f7061f4c8f4b93a4baf548a /project/Jni.scala | |
parent | f21d2de9405d5dd36f108a380f558cab930c1205 (diff) | |
download | akka-serial-719978035732a55261b753bbc33570d3c1f53785.tar.gz akka-serial-719978035732a55261b753bbc33570d3c1f53785.tar.bz2 akka-serial-719978035732a55261b753bbc33570d3c1f53785.zip |
refactor build to a more generic structure
Diffstat (limited to 'project/Jni.scala')
-rw-r--r-- | project/Jni.scala | 42 |
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) + } } |