diff options
Diffstat (limited to 'jni-plugin/src/main/scala/ch/jodersky/sbt/jni')
3 files changed, 37 insertions, 6 deletions
diff --git a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniJvm.scala b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniJvm.scala index 70c5787..292e1fa 100644 --- a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniJvm.scala +++ b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniJvm.scala @@ -62,7 +62,6 @@ object JniJvm extends AutoPlugin { lazy val clientSettings = Seq( //enable enhanced native library extraction libraryDependencies += "ch.jodersky" %% "jni-library" % Version.PluginVersion, - crossPaths := false, //don't need to appends scala version to native jars fork in run := true //fork new JVM as native libraries can only be loaded once ) diff --git a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniNative.scala b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniNative.scala index 7e36f50..90f7cc8 100644 --- a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniNative.scala +++ b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniNative.scala @@ -21,19 +21,19 @@ object JniNative extends AutoPlugin { } import autoImport._ - lazy val rawSettings: Seq[Setting[_]] = Seq( + lazy val settings: Seq[Setting[_]] = Seq( sourceDirectory in jni := baseDirectory.value / "src", - target in Global in jni := target.value / "native" / (jniPlatform in jni).value.id, + target in jni := target.value / "native" / (jniPlatform in jni).value.id, - jniPlatform in Global in jni := Platform.current.getOrElse { + jniPlatform in jni := Platform.current.getOrElse { sLog.value.warn("Warning: cannot determine platform! It will be set to 'unknown'.") Platform.Unknown }, jniBuildTool in jni := { - val tools = Seq(CMake) + val tools = Seq(CMake, Autotools) val base = (sourceDirectory in jni).value @@ -109,6 +109,9 @@ object JniNative extends AutoPlugin { ) - override lazy val projectSettings = inConfig(Compile)(rawSettings) + override lazy val projectSettings = inConfig(Compile)(settings) ++ Seq( + //don't scala version to native jars + crossPaths := false + ) } diff --git a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/build/Autotools.scala b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/build/Autotools.scala new file mode 100644 index 0000000..c1de1ea --- /dev/null +++ b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/build/Autotools.scala @@ -0,0 +1,29 @@ +package ch.jodersky.sbt.jni +package build + +import java.io.File +import sbt._ + +object Autotools extends BuildTool { + + val name = "Autotools" + + def detect(baseDirectory: File) = baseDirectory.list().contains("configure") + + object api extends ConfigureMakeInstall { + + override def configure(base: File, build: File, target: File) = { + val targetPath = target.getAbsolutePath + + Process( + s"${base.getAbsolutePath}/configure " + + s"--prefix=$targetPath " + + s"--libdir=$targetPath " + + "--disable-versioned-lib", + build) + } + + } + +} + |