diff options
author | Jakob Odersky <jodersky@gmail.com> | 2016-01-10 10:46:35 -0800 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2016-01-10 10:46:35 -0800 |
commit | c85463d30f73a43eb5275c504657a5117c126ca4 (patch) | |
tree | c9ece4c24b45c806efeb566882a2b98bc3d821c5 | |
parent | 85626c7675d3fe72072ef4192918291ec835cb45 (diff) | |
download | sbt-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.scala | 1 | ||||
-rw-r--r-- | jni-plugin/src/main/scala/ch/jodersky/sbt/jni/JniNative.scala | 13 | ||||
-rw-r--r-- | jni-plugin/src/main/scala/ch/jodersky/sbt/jni/build/Autotools.scala | 29 | ||||
-rw-r--r-- | project/Build.scala | 4 | ||||
-rw-r--r-- | samples/basic/README.md | 3 |
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. |