From 66ea145c4c92833e048844cd8852060d46f1a703 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Sun, 24 Jan 2016 12:59:17 -0800 Subject: Add combinated native libraries key --- README.md | 2 +- .../main/scala/ch/jodersky/sbt/jni/plugins/JniPackaging.scala | 9 ++++++++- project/Build.scala | 5 +++-- project/bintray.sbt | 1 - project/plugins.sbt | 3 +++ 5 files changed, 15 insertions(+), 5 deletions(-) delete mode 100644 project/bintray.sbt create mode 100644 project/plugins.sbt diff --git a/README.md b/README.md index 19ef6d7..4654b58 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The reason for dividing a project into two subprojects is two-fold: it enables f ## Usage Add plugin dependency. In `project/plugins.sbt`: ```scala -addSbtPlugin("ch.jodersky" % "sbt-jni" % "0.3.0") +addSbtPlugin("ch.jodersky" % "sbt-jni" % "0.4.0") ``` Define sub-projects for JVM and native sources. In `myproject/build.sbt`: diff --git a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/plugins/JniPackaging.scala b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/plugins/JniPackaging.scala index 6014086..1d874cc 100644 --- a/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/plugins/JniPackaging.scala +++ b/jni-plugin/src/main/scala/ch/jodersky/sbt/jni/plugins/JniPackaging.scala @@ -39,6 +39,10 @@ object JniPackaging extends AutoPlugin { "Maps locally built, platform-dependant libraries." ) + val nativeLibraries = taskKey[Map[Platform, File]]( + "All native libraries, managed and unmanaged." + ) + } import autoImport._ import JniNative.autoImport._ @@ -83,9 +87,12 @@ object JniPackaging extends AutoPlugin { } }.value, + // managed native libraries take precedence + nativeLibraries := unmanagedNativeLibraries.value ++ unmanagedNativeLibraries.value, + resourceGenerators += Def.task { - val libraries: Seq[(Platform, File)] = (managedNativeLibraries.value ++ unmanagedNativeLibraries.value).toSeq + val libraries: Seq[(Platform, File)] = nativeLibraries.value.toSeq val resources: Seq[File] = for ((plat, file) <- libraries) yield { diff --git a/project/Build.scala b/project/Build.scala index 64d471b..6695558 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -2,13 +2,14 @@ import sbt._ import sbt.Keys._ import bintray.BintrayPlugin.autoImport._ +import sbtdoge.CrossPerProjectPlugin object JniBuild extends Build { val scalaVersions = List("2.11.7", "2.12.0-M3", "2.10.5") val commonSettings = Seq( - version := "0.4.0-SNAPSHOT", + version := "0.4.0", organization := "ch.jodersky", licenses := Seq(("BSD New", url("http://opensource.org/licenses/BSD-3-Clause"))), scalacOptions ++= Seq("-deprecation", "-feature") @@ -25,7 +26,7 @@ object JniBuild extends Build { publishLocal := {}, publishTo := Some(Resolver.file("Unused transient repository", target.value / "unusedrepo")) // make sbt-pgp happy ) - ) + ).enablePlugins(CrossPerProjectPlugin) lazy val library = Project( id = "jni-library", diff --git a/project/bintray.sbt b/project/bintray.sbt deleted file mode 100644 index 8dd913f..0000000 --- a/project/bintray.sbt +++ /dev/null @@ -1 +0,0 @@ -addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0") diff --git a/project/plugins.sbt b/project/plugins.sbt new file mode 100644 index 0000000..391c9ab --- /dev/null +++ b/project/plugins.sbt @@ -0,0 +1,3 @@ +addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0") + +addSbtPlugin("com.eed3si9n" % "sbt-doge" % "0.1.5") -- cgit v1.2.3