aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2016-01-10 10:46:35 -0800
committerJakob Odersky <jodersky@gmail.com>2016-01-10 10:46:35 -0800
commitc85463d30f73a43eb5275c504657a5117c126ca4 (patch)
treec9ece4c24b45c806efeb566882a2b98bc3d821c5
parent85626c7675d3fe72072ef4192918291ec835cb45 (diff)
downloadsbt-jni-c85463d30f73a43eb5275c504657a5117c126ca4.tar.gz
sbt-jni-c85463d30f73a43eb5275c504657a5117c126ca4.tar.bz2
sbt-jni-c85463d30f73a43eb5275c504657a5117c126ca4.zip
Add support for autotoolsv0.2-SNAPSHOT
-rw-r--r--jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniJvm.scala1
-rw-r--r--jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniNative.scala13
-rw-r--r--jni-plugin/src/main/scala/ch/jodersky/sbt/jni/build/Autotools.scala29
-rw-r--r--project/Build.scala4
-rw-r--r--samples/basic/README.md3
5 files changed, 42 insertions, 8 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)
+ }
+
+ }
+
+}
+
diff --git a/project/Build.scala b/project/Build.scala
index 9a6c0e0..4991d9e 100644
--- a/project/Build.scala
+++ b/project/Build.scala
@@ -3,7 +3,7 @@ import sbt.Keys._
object JniBuild extends Build {
- val scalaVersions = List("2.11.7", "2.10.5")
+ val scalaVersions = List("2.11.7", "2.12.0-M3", "2.10.5")
val commonSettings = Seq(
version := "0.2-SNAPSHOT",
@@ -28,7 +28,7 @@ object JniBuild extends Build {
base = file("jni-library"),
settings = commonSettings ++ Seq(
scalaVersion := scalaVersions.head,
- crossScalaVersions := scalaVersions.reverse
+ crossScalaVersions := scalaVersions
)
)
diff --git a/samples/basic/README.md b/samples/basic/README.md
new file mode 100644
index 0000000..0f29336
--- /dev/null
+++ b/samples/basic/README.md
@@ -0,0 +1,3 @@
+# Basic demo application using sbt-jni
+
+Publish plugin before running.