aboutsummaryrefslogtreecommitdiff
path: root/project/nativepack.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-01-18 17:21:14 +0100
committerJakob Odersky <jodersky@gmail.com>2014-01-18 17:21:14 +0100
commit17589dcc1899a615d5d31ba54b698e06c45cd13f (patch)
treef26abb735de4c657589ecfea910a1d30875fd561 /project/nativepack.scala
parent506e9436a6225b804fb3df9f8ce8d5cb62480106 (diff)
downloadakka-serial-17589dcc1899a615d5d31ba54b698e06c45cd13f.tar.gz
akka-serial-17589dcc1899a615d5d31ba54b698e06c45cd13f.tar.bz2
akka-serial-17589dcc1899a615d5d31ba54b698e06c45cd13f.zip
update readmev1.1.0-RC1
Diffstat (limited to 'project/nativepack.scala')
-rw-r--r--project/nativepack.scala37
1 files changed, 37 insertions, 0 deletions
diff --git a/project/nativepack.scala b/project/nativepack.scala
new file mode 100644
index 0000000..293848d
--- /dev/null
+++ b/project/nativepack.scala
@@ -0,0 +1,37 @@
+import sbt._
+import Keys._
+import NativeKeys._
+import java.io.File
+import scala.collection.mutable.HashSet
+
+object NativePackKeys {
+
+ val nativePackLinkages = taskKey[Seq[(NativeBuild, File)]]("")
+ val nativePackUnmanaged = settingKey[File]("Directory containing any pre-compiled native binaries.")
+
+}
+
+object NativePackDefaults {
+ import NativePackKeys._
+
+ val mappingsImpl = Def.task {
+ val links = nativePackLinkages.value
+ val unamanagedDir = nativePackUnmanaged.value
+
+ val managed: Seq[(File, String)] = for ( (build, binary) <- links.toSeq) yield {
+ binary -> ("native/" + build.name + "/" + binary.name)
+ }
+
+ val unmanaged: Seq[(File, String)] = for (file <- (unamanagedDir ** "*").get; if file.isFile) yield {
+ file -> ("native/" + (file relativeTo unamanagedDir).get.getPath)
+ }
+
+ managed ++ unmanaged
+ }
+
+ def settings = Seq(
+ nativePackUnmanaged := baseDirectory.value / "lib_native",
+ mappings in (Compile, packageBin) ++= mappingsImpl.value
+ )
+
+} \ No newline at end of file