aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
Diffstat (limited to 'project')
-rw-r--r--project/build/SparkProject.scala42
1 files changed, 41 insertions, 1 deletions
diff --git a/project/build/SparkProject.scala b/project/build/SparkProject.scala
index 35838cb35b..7ba03f6125 100644
--- a/project/build/SparkProject.scala
+++ b/project/build/SparkProject.scala
@@ -1,6 +1,46 @@
import sbt._
import de.element34.sbteclipsify._
+import Process._
+
class SparkProject(info: ProjectInfo)
-extends DefaultProject(info) with Eclipsify {
+extends DefaultProject(info) with Eclipsify
+{
+ val TARGET = path("target") / "scala_2.8.1"
+
+ val NATIVE_DIR = path("src") / "main" / "native"
+
+ val NATIVE_SOURCES = NATIVE_DIR * "*.c"
+
+ val NATIVE_LIB = {
+ if (System.getProperty("os.name") == "Mac OS X")
+ "libspark_native.dylib"
+ else
+ "libspark_native.so"
+ }
+
+ lazy val native = fileTask(TARGET / NATIVE_LIB from NATIVE_SOURCES) {
+ val makeTarget = " ../../../target/scala_2.8.1/native/" + NATIVE_LIB
+ (("make -C " + NATIVE_DIR + " " + makeTarget) ! log)
+ None
+ } dependsOn(compile) describedAs("Compiles native library.")
+
+ val TEST_REPORT_DIR = TARGET / "test-report"
+
+ lazy val testReport = task {
+ log.info("Creating " + TEST_REPORT_DIR + "...")
+ if (!TEST_REPORT_DIR.exists) {
+ TEST_REPORT_DIR.asFile.mkdirs()
+ }
+
+ log.info("Executing org.scalatest.tools.Runner...")
+ val command = ("scala -classpath " + testClasspath.absString +
+ " org.scalatest.tools.Runner -o " +
+ " -u " + TEST_REPORT_DIR.absolutePath +
+ " -p " + (TARGET / "test-classes").absolutePath)
+ val process = Process(command, path("."), "JAVA_OPTS" -> "-Xmx500m")
+ process !
+
+ None
+ } dependsOn(compile, testCompile) describedAs("Generate XML test report.")
}