aboutsummaryrefslogtreecommitdiff
path: root/project/FlowBuild.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-03-29 13:16:50 +0100
committerJakob Odersky <jodersky@gmail.com>2014-03-29 13:16:50 +0100
commitf34d5ccc120d2d2014a052966b183da7383bdc61 (patch)
treef70243e9f6c48cb4c5034c17c9c705f4741a257b /project/FlowBuild.scala
parentc0c3647bbf64af754d3cc9b6d167c8ca2b736f74 (diff)
downloadakka-serial-f34d5ccc120d2d2014a052966b183da7383bdc61.tar.gz
akka-serial-f34d5ccc120d2d2014a052966b183da7383bdc61.tar.bz2
akka-serial-f34d5ccc120d2d2014a052966b183da7383bdc61.zip
remove sbt native build and flow-pack
Diffstat (limited to 'project/FlowBuild.scala')
-rw-r--r--project/FlowBuild.scala110
1 files changed, 5 insertions, 105 deletions
diff --git a/project/FlowBuild.scala b/project/FlowBuild.scala
index d509baa..dfef43c 100644
--- a/project/FlowBuild.scala
+++ b/project/FlowBuild.scala
@@ -1,16 +1,11 @@
import sbt._
import Keys._
import JniKeys._
-import NativeKeys._
-import NativePackKeys._
object FlowBuild extends Build {
val Organization = "com.github.jodersky"
val ScalaVersion = "2.10.3"
val Version = "2.0.0" //version of flow library
- val NativeMajorVersion = 3 //major version of native API
- val NativeMinorVersionPosix = 0 //minor version of native posix implementation
- val NativeVersionPosix = NativeMajorVersion + "." + NativeMinorVersionPosix
val gitHeadCommitSha = settingKey[String]("Current commit sha.")
@@ -32,7 +27,7 @@ object FlowBuild extends Build {
)
lazy val root: Project = (
- Project("root", file(".")).aggregate(flow, flowPack)
+ Project("root", file(".")).aggregate(flow)
settings(
publish := (),
publishLocal := ()
@@ -43,13 +38,9 @@ object FlowBuild extends Build {
Project("flow", file("flow"))
settings (commonSettings: _*)
settings (JniDefaults.settings: _*)
- settings (NativeDefaults.settings: _*)
- settings (selectHost().settings: _*)
settings(
- nativeIncludeDirectories += (sourceDirectory in Compile).value / "native" / "include",
- nativeIncludeDirectories ++= jdkHome.value.map(jdk => jdk / "include").toSeq,
javahClasses := Seq("com.github.jodersky.flow.internal.NativeSerial"),
- javahHeaderDirectory := (sourceDirectory in Compile).value / "native" / "include",
+ javahHeaderDirectory := (baseDirectory in ThisBuild).value / "flow-native" / "include",
compileOrder in Compile := CompileOrder.Mixed,
publishMavenStyle := true,
publishTo := {
@@ -73,106 +64,16 @@ object FlowBuild extends Build {
</developers>
},
libraryDependencies ++= Seq(
- Dependencies.akkaActor,
- Dependencies.ioCore,
- Dependencies.ioFile)
+ Dependencies.akkaActor
+ )
)
)
- //the current operating system used to run the native compile
- trait Host{ def settings: Seq[Setting[_]] }
-
- object Linux extends Host {
-
- val compiler = "gcc"
- val linker = compiler
- val cFlags = List("-O2", "-fPIC", "-Wall")
- val linkerFlags = List("-shared", s"-Wl,-soname,libflow.so.${NativeMajorVersion}")
- val binary = "libflow.so"
-
- val builds = List(
- NativeBuild("x86_64-linux-gnu", "gcc", "-m64" :: cFlags, "gcc", "-m64" :: linkerFlags, binary)
- //NativeBuild("x86-linux-gnu", "gcc", "-m32" :: cFlags, "gcc", "-m32" :: linkerFlags, binary),
- //NativeBuild("arm-linux-gnueabihf", "arm-linux-gnueabihf-gcc", cFlags, "arm-linux-gnueabihf-gcc", linkerFlags, binary),
- //NativeBuild("arm-linux-gnueabi", "arm-linux-gnueabi-gcc", cFlags, "arm-linux-gnueabi-gcc", linkerFlags, binary)
- //add other build configurations here or adapt existing ones to your needs
- )
-
- lazy val settings = Seq(
- nativeVersion := NativeVersionPosix,
- nativeIncludeDirectories ++= jdkHome.value.map(jdk => jdk / "include" / "linux").toSeq,
- nativeSource := nativeSource.value / "posix",
- nativeBuilds := builds
- )
-
- }
-
- //stub, not sure if this works
- object MacOSX extends Host {
-
- val compiler = "gcc"
- val linker = compiler
- val cFlags = Seq("-O2", "-fPIC")
- val linkerFlags = Seq("-dynamiclib")
- val binary = s"libflow.jnilib"
-
- val localBuild = NativeBuild(
- "amd64-macosx",
- compiler,
- cFlags,
- linker,
- linkerFlags,
- binary
- )
-
- lazy val settings = Seq(
- nativeVersion := NativeVersionPosix,
- nativeIncludeDirectories += file("/System/Library/Frameworks/JavaVM.framework/Headers/jni.h"),
- nativeIncludeDirectories += file("/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers"),
- nativeSource := nativeSource.value / "posix",
- nativeBuilds := Seq(localBuild)
- )
-
- }
-
- private def osError = throw new RuntimeException("Sorry, native compilation under the current OS is not supported.")
- def selectHost() = System.getProperty("os.name").toLowerCase match {
- case "linux" => Linux
- case "macosx" => MacOSX
- case _ => new Host{
- val settings = Seq(
- nativeCompile := osError,
- nativeLink := osError
- )
- }
- }
-
- lazy val flowPack: Project = (
- Project("flow-pack", file("flow-pack"))
- settings (commonSettings: _*)
- settings (NativePackDefaults.settings: _*)
- settings (
- nativePackLinkages := {
- val linkMappings = Map(
- "x86_64-linux-gnu" -> "amd64-linux",
- "x86-linux-gnu" -> "x86-linux",
- "arm-linux-gnueabihf" -> "arm-linux"
- )
- val ls: Seq[(NativeBuild, File)] = (nativeLink in flow).value.toSeq
- for ((build, binary) <- ls; n <- linkMappings.get(build.name)) yield {
- (build.copy(name = n), binary)
- }
- },
- exportJars := true
- )
- dependsOn(flow)
- )
-
lazy val samplesTerminal = (
Project("flow-samples-terminal", file("flow-samples") / "flow-samples-terminal")
settings(commonSettings: _*)
settings(runSettings: _*)
- dependsOn(flowPack)
+ //dependsOn(flowPack)
dependsOn(flow)
)
@@ -180,7 +81,6 @@ object FlowBuild extends Build {
Project("flow-samples-broadcast", file("flow-samples") / "flow-samples-broadcast")
settings(commonSettings: _*)
settings(runSettings: _*)
- dependsOn(flowPack)
dependsOn(flow)
)