diff options
-rw-r--r-- | flow-main/src/main/java/com/github/jodersky/flow/low/NativeSerial.java (renamed from main/src/main/java/com/github/jodersky/flow/low/NativeSerial.java) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/Framing.scalac (renamed from main/src/main/scala/com/github/jodersky/flow/Framing.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/Serial.scalac (renamed from main/src/main/scala/com/github/jodersky/flow/Serial.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scalac (renamed from main/src/main/scala/com/github/jodersky/flow/SerialManager.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/SerialOperator.scalac (renamed from main/src/main/scala/com/github/jodersky/flow/SerialOperator.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/exceptions.scala (renamed from main/src/main/scala/com/github/jodersky/flow/exceptions.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/low/NativeLoader.scala (renamed from main/src/main/scala/com/github/jodersky/flow/low/NativeLoader.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/low/Serial.scala (renamed from main/src/main/scala/com/github/jodersky/flow/low/Serial.scala) | 0 | ||||
-rw-r--r-- | flow-main/src/main/scala/com/github/jodersky/flow/test.sc (renamed from main/src/main/scala/com/github/jodersky/flow/test.sc) | 0 | ||||
-rw-r--r-- | flow-native/src/flow.c (renamed from main/src/main/c/flow.c) | 4 | ||||
-rw-r--r-- | main/.worksheet/src/com.github.jodersky.flow.test.scala | 40 | ||||
-rw-r--r-- | main/src/main/c/com_github_jodersky_flow_low_NativeSerial.h | 73 | ||||
-rw-r--r-- | project/Build.scala | 41 | ||||
-rw-r--r-- | project/JNIBuild.scala | 22 | ||||
-rw-r--r-- | project/Jni.scala | 37 | ||||
-rw-r--r-- | project/NativeBuild.scala | 75 | ||||
-rw-r--r-- | project/NativeSettings.foo | 56 | ||||
-rw-r--r-- | project/build.properties | 1 | ||||
-rw-r--r-- | project/plugins.sbt | 1 |
19 files changed, 60 insertions, 290 deletions
diff --git a/main/src/main/java/com/github/jodersky/flow/low/NativeSerial.java b/flow-main/src/main/java/com/github/jodersky/flow/low/NativeSerial.java index 6bdcde5..6bdcde5 100644 --- a/main/src/main/java/com/github/jodersky/flow/low/NativeSerial.java +++ b/flow-main/src/main/java/com/github/jodersky/flow/low/NativeSerial.java diff --git a/main/src/main/scala/com/github/jodersky/flow/Framing.scala b/flow-main/src/main/scala/com/github/jodersky/flow/Framing.scalac index f8173a7..f8173a7 100644 --- a/main/src/main/scala/com/github/jodersky/flow/Framing.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/Framing.scalac diff --git a/main/src/main/scala/com/github/jodersky/flow/Serial.scala b/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scalac index 7182425..7182425 100644 --- a/main/src/main/scala/com/github/jodersky/flow/Serial.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/Serial.scalac diff --git a/main/src/main/scala/com/github/jodersky/flow/SerialManager.scala b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scalac index ca3fc6b..ca3fc6b 100644 --- a/main/src/main/scala/com/github/jodersky/flow/SerialManager.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/SerialManager.scalac diff --git a/main/src/main/scala/com/github/jodersky/flow/SerialOperator.scala b/flow-main/src/main/scala/com/github/jodersky/flow/SerialOperator.scalac index 21d2067..21d2067 100644 --- a/main/src/main/scala/com/github/jodersky/flow/SerialOperator.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/SerialOperator.scalac diff --git a/main/src/main/scala/com/github/jodersky/flow/exceptions.scala b/flow-main/src/main/scala/com/github/jodersky/flow/exceptions.scala index c7b2fa1..c7b2fa1 100644 --- a/main/src/main/scala/com/github/jodersky/flow/exceptions.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/exceptions.scala diff --git a/main/src/main/scala/com/github/jodersky/flow/low/NativeLoader.scala b/flow-main/src/main/scala/com/github/jodersky/flow/low/NativeLoader.scala index fda82a6..fda82a6 100644 --- a/main/src/main/scala/com/github/jodersky/flow/low/NativeLoader.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/low/NativeLoader.scala diff --git a/main/src/main/scala/com/github/jodersky/flow/low/Serial.scala b/flow-main/src/main/scala/com/github/jodersky/flow/low/Serial.scala index e482bf8..e482bf8 100644 --- a/main/src/main/scala/com/github/jodersky/flow/low/Serial.scala +++ b/flow-main/src/main/scala/com/github/jodersky/flow/low/Serial.scala diff --git a/main/src/main/scala/com/github/jodersky/flow/test.sc b/flow-main/src/main/scala/com/github/jodersky/flow/test.sc index 88a2193..88a2193 100644 --- a/main/src/main/scala/com/github/jodersky/flow/test.sc +++ b/flow-main/src/main/scala/com/github/jodersky/flow/test.sc diff --git a/main/src/main/c/flow.c b/flow-native/src/flow.c index 89813ce..09ffca6 100644 --- a/main/src/main/c/flow.c +++ b/flow-native/src/flow.c @@ -153,7 +153,9 @@ void serial_close(struct serial_config* serial) { int data = 0xffffffff; //write to pipe to wake up any blocked read thread (self-pipe trick) - write(serial->pipe_write, &data, 1); + if (write(serial->pipe_write, &data, 1) <= 0) { + DEBUG(perror("error writing to pipe during close")) + } close(serial->pipe_write); close(serial->pipe_read); diff --git a/main/.worksheet/src/com.github.jodersky.flow.test.scala b/main/.worksheet/src/com.github.jodersky.flow.test.scala deleted file mode 100644 index 1510da1..0000000 --- a/main/.worksheet/src/com.github.jodersky.flow.test.scala +++ /dev/null @@ -1,40 +0,0 @@ -package com.github.jodersky.flow - -import akka.io.PipelineContext -import akka.io.SymmetricPipePair -import akka.io.SymmetricPipelineStage -import akka.util.ByteString -import java.nio.ByteOrder -import scala.annotation.tailrec -import java.nio.ByteBuffer -import akka.io._ -import akka.actor.{IO=>_,_} -import Serial._ - -object test {;import org.scalaide.worksheet.runtime.library.WorksheetSupport._; def main(args: Array[String])=$execute{;$skip(351); - - val StartByte = 0: Byte;System.out.println("""StartByte : Byte = """ + $show(StartByte ));$skip(25); - val StopByte = 1: Byte;System.out.println("""StopByte : Byte = """ + $show(StopByte ));$skip(27); - val EscapeByte = 2: Byte;System.out.println("""EscapeByte : Byte = """ + $show(EscapeByte ));$skip(36); - - val ctx = new PipelineContext{};System.out.println("""ctx : akka.io.PipelineContext = """ + $show(ctx ));$skip(68); - - val stages = new DelimitedFrame(StartByte, StopByte, EscapeByte);System.out.println("""stages : com.github.jodersky.flow.DelimitedFrame = """ + $show(stages ));$skip(88); - - val PipelinePorts(cmd, evt, mgmt) = PipelineFactory.buildFunctionTriple(ctx, stages);System.out.println("""cmd : akka.util.ByteString => (Iterable[akka.util.ByteString], Iterable[akka.util.ByteString]) = """ + $show(cmd ));System.out.println("""evt : akka.util.ByteString => (Iterable[akka.util.ByteString], Iterable[akka.util.ByteString]) = """ + $show(evt ));System.out.println("""mgmt : PartialFunction[AnyRef,(Iterable[akka.util.ByteString], Iterable[akka.util.ByteString])] = """ + $show(mgmt ));$skip(243); - - val injector = PipelineFactory.buildWithSinkFunctions(ctx, stages)( - t => println("sent command: " + t), // will receive messages of type Try[ByteString] - t => println("got event: " + t) // will receive messages of type Try[Message] - );System.out.println("""injector : akka.io.PipelineInjector[akka.util.ByteString,akka.util.ByteString] = """ + $show(injector ));$skip(59); - - - val bs = ByteString.fromArray(Array(0,4,2,1,1,6,1));System.out.println("""bs : akka.util.ByteString = """ + $show(bs ));$skip(51); - - injector.injectCommand(bs);$skip(27); - injector.injectEvent(bs);$skip(47); - - implicit val system = ActorSystem("flow");System.out.println("""system : akka.actor.ActorSystem = """ + $show(system ))} - //IO(Serial) ! Open("s", 9600) - -} diff --git a/main/src/main/c/com_github_jodersky_flow_low_NativeSerial.h b/main/src/main/c/com_github_jodersky_flow_low_NativeSerial.h deleted file mode 100644 index 54ea963..0000000 --- a/main/src/main/c/com_github_jodersky_flow_low_NativeSerial.h +++ /dev/null @@ -1,73 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include <jni.h> -/* Header for class com_github_jodersky_flow_low_NativeSerial */ - -#ifndef _Included_com_github_jodersky_flow_low_NativeSerial -#define _Included_com_github_jodersky_flow_low_NativeSerial -#ifdef __cplusplus -extern "C" { -#endif -#undef com_github_jodersky_flow_low_NativeSerial_E_PERMISSION -#define com_github_jodersky_flow_low_NativeSerial_E_PERMISSION -1L -#undef com_github_jodersky_flow_low_NativeSerial_E_OPEN -#define com_github_jodersky_flow_low_NativeSerial_E_OPEN -2L -#undef com_github_jodersky_flow_low_NativeSerial_E_BUSY -#define com_github_jodersky_flow_low_NativeSerial_E_BUSY -3L -#undef com_github_jodersky_flow_low_NativeSerial_E_BAUD -#define com_github_jodersky_flow_low_NativeSerial_E_BAUD -4L -#undef com_github_jodersky_flow_low_NativeSerial_E_PIPE -#define com_github_jodersky_flow_low_NativeSerial_E_PIPE -5L -#undef com_github_jodersky_flow_low_NativeSerial_E_MALLOC -#define com_github_jodersky_flow_low_NativeSerial_E_MALLOC -6L -#undef com_github_jodersky_flow_low_NativeSerial_E_POINTER -#define com_github_jodersky_flow_low_NativeSerial_E_POINTER -7L -#undef com_github_jodersky_flow_low_NativeSerial_E_POLL -#define com_github_jodersky_flow_low_NativeSerial_E_POLL -8L -#undef com_github_jodersky_flow_low_NativeSerial_E_IO -#define com_github_jodersky_flow_low_NativeSerial_E_IO -9L -#undef com_github_jodersky_flow_low_NativeSerial_E_CLOSE -#define com_github_jodersky_flow_low_NativeSerial_E_CLOSE -10L -/* - * Class: com_github_jodersky_flow_low_NativeSerial - * Method: open - * Signature: (Ljava/lang/String;I[J)I - */ -JNIEXPORT jint JNICALL Java_com_github_jodersky_flow_low_NativeSerial_open - (JNIEnv *, jclass, jstring, jint, jlongArray); - -/* - * Class: com_github_jodersky_flow_low_NativeSerial - * Method: read - * Signature: (J[B)I - */ -JNIEXPORT jint JNICALL Java_com_github_jodersky_flow_low_NativeSerial_read - (JNIEnv *, jclass, jlong, jbyteArray); - -/* - * Class: com_github_jodersky_flow_low_NativeSerial - * Method: write - * Signature: (J[B)I - */ -JNIEXPORT jint JNICALL Java_com_github_jodersky_flow_low_NativeSerial_write - (JNIEnv *, jclass, jlong, jbyteArray); - -/* - * Class: com_github_jodersky_flow_low_NativeSerial - * Method: close - * Signature: (J)V - */ -JNIEXPORT void JNICALL Java_com_github_jodersky_flow_low_NativeSerial_close - (JNIEnv *, jclass, jlong); - -/* - * Class: com_github_jodersky_flow_low_NativeSerial - * Method: debug - * Signature: (Z)V - */ -JNIEXPORT void JNICALL Java_com_github_jodersky_flow_low_NativeSerial_debug - (JNIEnv *, jclass, jboolean); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/project/Build.scala b/project/Build.scala index ccee261..5b157a7 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -1,22 +1,33 @@ import sbt._ import Keys._ -import NativeBuild._ -import JNIBuild._ + +import com.github.jodersky.build.NativeKeys._ +import com.github.jodersky.build.NativePlugin._ +import Jni._ object FlowBuild extends Build { val Organization = "com.github.jodersky" val Version = "1.0-SNAPSHOT" val ScalaVersion = "2.10.1" - lazy val root = Project( - id = "flow", - base = file("main"), - settings = buildSettings ++ jniSettings ++ Seq(libraryDependencies ++= Dependencies.all)) + lazy val main = Project("flow-main", file("flow-main")).settings( + buildSettings ++ Seq(libraryDependencies ++= Dependencies.all): _* + ) + + lazy val native = NativeProject("flow-native", file("flow-native")).settings((Seq( + javahClasses := Seq("com.github.jodersky.flow.low.NativeSerial"), + includeDirectories in Native += jdkHome.value / "include" / "linux", + nativeSource in Native := baseDirectory.value / "src", + binaryType in Native := SharedLibrary, + binaryName in Native := "flow", + options in Native := Seq("-fPIC", "-O2"), + linkOptions in Native := Seq("-Wl,-soname,libflow.so.1") + ) ++ Jni.defaultSettings): _*).dependsOn(main) lazy val example = Project( id = "flow-example", base = file("example"), - settings = buildSettings ++ runSettings ++ Seq(libraryDependencies ++= Dependencies.all)).dependsOn(root) + settings = buildSettings ++ runSettings ++ Seq(libraryDependencies ++= Dependencies.all)) lazy val buildSettings = Defaults.defaultSettings ++ Seq( organization := Organization, @@ -26,22 +37,6 @@ object FlowBuild extends Build { scalacOptions ++= Seq("-deprecation", "-unchecked", "-feature"), compileOrder in Compile := CompileOrder.Mixed) - lazy val jniSettings = JNIBuild.defaults ++ Seq( - jdkHome := file(System.getProperty("java.home")) / "..", - javaClass := "com.github.jodersky.flow.low.NativeSerial", - NativeBuild.compiler := "gcc", - options := Seq("-fPIC"), - NativeBuild.includeDirectories <<= jdkHome apply (jdk => Seq(jdk / "include", jdk / "include" / "linux")), - linker := "gcc", - linkerOptions := Seq("-shared", "-Wl,-soname,libflow.so.1"), - linkerOutput <<= NativeBuild.outputDirectory(_ / "libflow.so"), - Keys.packageBin in Compile <<= (Keys.packageBin in Compile).dependsOn(NativeBuild.link), - mappings in (Compile, packageBin) <+= linkerOutput map { out => - out -> ("native/" + System.getProperty("os.name").toLowerCase + "/" + System.getProperty("os.arch").toLowerCase + "/libflow.so") - }, - exportJars := true - ) - lazy val runSettings = Seq( fork := true, connectInput in run := true, diff --git a/project/JNIBuild.scala b/project/JNIBuild.scala deleted file mode 100644 index ed0d05e..0000000 --- a/project/JNIBuild.scala +++ /dev/null @@ -1,22 +0,0 @@ -import sbt._ -import Keys._ - -object JNIBuild { - val jdkHome = SettingKey[File]("jdk-home", "Home of JDK.") - val javaClass = SettingKey[String]("jni-class", "Fully qualified name of class containing native declarations.") - - val javah = TaskKey[Unit]("javah", "Generate JNI headers.") - - val javahTask = javah <<= (javaClass, NativeBuild.sourceDirectory, Keys.classDirectory in Compile) map { (j, src, cp) => - val cmd = "javah -d " + src.absolutePath + " -classpath " + cp.absolutePath + " " + j - cmd !; - {} - } dependsOn (Keys.compile in Compile) - - val defaults: Seq[Setting[_]] = NativeBuild.defaults ++ Seq( - javahTask, - NativeBuild.compile <<= NativeBuild.compile.dependsOn(javah) - ) - -} - diff --git a/project/Jni.scala b/project/Jni.scala new file mode 100644 index 0000000..0263786 --- /dev/null +++ b/project/Jni.scala @@ -0,0 +1,37 @@ +import sbt._ +import Keys._ +import com.github.jodersky.build.NativeKeys._ + +object Jni { + val jdkHome = settingKey[File]("Home of JDK.") + val javahHeaderDirectory = settingKey[File]("Directory where generated javah header files are placed.") + val javahClasses = settingKey[Seq[String]]("Fully qualified names of classes containing native declarations.") + val javah = taskKey[Seq[File]]("Generate JNI headers.") + + val defaultSettings: Seq[Setting[_]] = Seq( + jdkHome := file(sys.env("JAVA_HOME")), + javahHeaderDirectory := (sourceManaged in Native).value / "javah", + javah := { + + val cp = (fullClasspath in Compile).value.map(_.data.getAbsolutePath).mkString(":") + for (clazz <- javahClasses.value) { + val parts = Seq( + "javah", + "-d", javahHeaderDirectory.value, + "-classpath", cp, + clazz) + val cmd = parts.mkString(" ") + val ev = Process(cmd) ! streams.value.log + if (ev != 0) throw new RuntimeException("Error occured running javah.") + } + IO.listFiles(javahHeaderDirectory.value) + }, + sourceGenerators in Native <+= javah map {headers => + headers + }, + includeDirectories in Native += javahHeaderDirectory.value, + javah <<= (javah dependsOn (compile in Compile)), + includeDirectories in Native += jdkHome.value / "include" + ) +} + diff --git a/project/NativeBuild.scala b/project/NativeBuild.scala deleted file mode 100644 index a77e8f8..0000000 --- a/project/NativeBuild.scala +++ /dev/null @@ -1,75 +0,0 @@ -import sbt._ -import Keys._ - -object NativeBuild { - - //settings - val sourceDirectory = SettingKey[File]("native-source-directory", "Native source directory containing files to compile.") - val compiler = SettingKey[String]("native-compiler", "Native compiler.") - val options = SettingKey[Seq[String]]("native-options", "Flags for native compiler.") - val includeDirectories = SettingKey[Seq[File]]("native-include-directories", "Include directories for native compiler.") - val outputDirectory = SettingKey[File]("native-output-directory", "Directory for native output.") - val linker = SettingKey[String]("native-linker", "Native linker.") - val linkerOutput = SettingKey[File]("native-linker-output", "Name of linker output.") - val linkerOptions = SettingKey[Seq[String]]("native-linker-options", "Native linker options.") - val linkerLibraries = SettingKey[Seq[String]]("native-linker-libraries", "Libraries against which to link.") - - //tasks - val outputFromSource = TaskKey[File => File]("native-output-from-source", "Get name of native binary from source file.") - val sources = TaskKey[Seq[File]]("native-source", "Native source files to compile.") - val makeOutputDirectory = TaskKey[Unit]("native-make-output-directory", "Make native output directory.") - val compile = TaskKey[Unit]("native-compile", "Compiles native sources.") - val link = TaskKey[Unit]("native-link", "Link native sources.") - - //task implementations - val outputFromSourceTask = outputFromSource <<= (outputDirectory) map { - outputDir => - ((src: File) => {file((outputDir / src.base).absolutePath + ".o")}) - } - - val makeOutputDirectoryTask = makeOutputDirectory <<= (outputDirectory) map {o => o.mkdirs(); {}} - - def compileSingleFile(compiler: String, options: Seq[String], includeDirectories: Seq[File], source: File, s2o: File => File): Unit = { - val cmdParts = - List(compiler) ++ - options ++ - includeDirectories.map(i => "-I" + i.absolutePath) ++ - List("-c", source.absolutePath) ++ - List("-o", s2o(source)) - - val cmd = cmdParts.mkString(" ") - cmd ! - } - - val compileTask = compile <<= (compiler, options, includeDirectories, sources, outputFromSource) map { - (c, f, i, srcs, out) => for (s <- srcs) compileSingleFile(c,f,i,s,out) - } dependsOn(makeOutputDirectory) - - val linkTask = link <<= (linker, linkerOptions, linkerLibraries, linkerOutput, sources, outputFromSource) map { (l, opts, libs, out, srcs, s2o) => - val outs = srcs.map(s2o(_)) - val cmd: Seq[String] = Seq(l) ++ opts ++ Seq("-o", out.absolutePath) ++ outs.map(_.absolutePath) ++ libs.map(lib => "-l" + lib) - cmd !; - {} - } dependsOn(compile) - - - - lazy val defaults = Seq( - compiler := "gcc", - options := Seq(), - sourceDirectory <<= Keys.sourceDirectory(_ / "main" / "c"), - sources <<= sourceDirectory map (dir => (dir ** "*.c").get), - includeDirectories <<= sourceDirectory(dir => Seq(dir)), - outputDirectory <<= target(_ / "c"), - linker := "gcc", - linkerOutput <<= outputDirectory(_ / "a.out"), - linkerOptions := Seq(), - linkerLibraries := Seq(), - - outputFromSourceTask, - makeOutputDirectoryTask, - compileTask, - linkTask - ) - -}
\ No newline at end of file diff --git a/project/NativeSettings.foo b/project/NativeSettings.foo deleted file mode 100644 index 5a544c1..0000000 --- a/project/NativeSettings.foo +++ /dev/null @@ -1,56 +0,0 @@ -import sbt._ -import Keys._ - -object NativeSettings { - - val jdkHome = SettingKey[File]("jdk-home", "Home of JDK.") - - val javaClass = SettingKey[String]("native-java-file", "Fully qualified name of class containing native declarations.") - val sourceDirectory = SettingKey[File]("native-source-directory", "Native source directory ontaining files to compile.") - val sources = SettingKey[File]("native-source", "Native source files to compile.") - - val compiler = SettingKey[String]("native-compiler", "Native compiler.") - val flags = SettingKey[Seq[String]]("native-flags", "Flags for native compiler.") - val includeDirectories = SettingKey[Seq[File]]("native-include-directories", "Include directories for native compiler.") - val outputDirectory = SettingKey[File]("native-output-directory", "Directory for native output.") - - val makeOutputDirectory = TaskKey[Unit]("native-make-output-directory", "Make native output directory.") - val compile = TaskKey[Unit]("native-compile", "Compiles native sources.") - val javah = TaskKey[Unit]("native-javah", "Generate JNI headers.") - - val javahTask = javah <<= (javaClass, sourceDirectory, Keys.classDirectory) map {(j, src, cp) => - val cmd = "javah -d " + source.absolutePath + " -cp " + cp.absolutePath + " " + javaClass - cmd ! - } - - def compileTask(compiler: String, flags: Seq[String], includeDirectories: Seq[File], source: File, outputDirectory: File): Unit = { - val cmdParts = - List(compiler) ++ - flags ++ - includeDirectories.map(i => "-I" + i.absolutePath) ++ - List("-c", source.absolutePath) ++ - List("-o", (outputDirectory / source.base).absolutePath + ".o") - - val cmd = cmdParts.mkString(" ") - println(cmd) - cmd ! - } - - def jdkHome = - - lazy val defaults = Seq( - jdkHome := file(System.getProperty("java.home")) / "..", - compiler := "gcc", - flags := Seq(), - source <<= sourceDirectory(_ / "main" / "c" / "flow.c"), - includeDirectories := Seq(jdkHome / "include", jdkHome / "include" / "linux"), - outputDirectory <<= target(_ / "c"), - makeOutputDirectory <<= (outputDirectory) map {o => o.mkdirs()}, - - - compile <<= ((compiler, flags, includeDirectories, source, outputDirectory) map { - (c, f, i, s, o) => compileTask(c, f, i, s, o) - }).dependsOn(makeOutputDirectory) - ) - -}
\ No newline at end of file diff --git a/project/build.properties b/project/build.properties new file mode 100644 index 0000000..15f8ffd --- /dev/null +++ b/project/build.properties @@ -0,0 +1 @@ +sbt.version=0.13.0-Beta2 diff --git a/project/plugins.sbt b/project/plugins.sbt new file mode 100644 index 0000000..6eb2159 --- /dev/null +++ b/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("com.github.jodersky" % "sbt-native" % "1.0-SNAPSHOT") |