aboutsummaryrefslogtreecommitdiff
path: root/project/SparkBuild.scala
diff options
context:
space:
mode:
Diffstat (limited to 'project/SparkBuild.scala')
-rw-r--r--project/SparkBuild.scala26
1 files changed, 24 insertions, 2 deletions
diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala
index b7c6192243..570c9e50ed 100644
--- a/project/SparkBuild.scala
+++ b/project/SparkBuild.scala
@@ -57,6 +57,9 @@ object BuildCommons {
val sparkHome = buildLocation
val testTempDir = s"$sparkHome/target/tmp"
+
+ val javacJVMVersion = settingKey[String]("source and target JVM version for javac")
+ val scalacJVMVersion = settingKey[String]("source and target JVM version for scalac")
}
object SparkBuild extends PomBuild {
@@ -154,9 +157,17 @@ object SparkBuild extends PomBuild {
if (major.toInt >= 1 && minor.toInt >= 8) Seq("-Xdoclint:all", "-Xdoclint:-missing") else Seq.empty
},
- javacOptions in Compile ++= Seq("-encoding", "UTF-8"),
+ javacJVMVersion := "1.7",
+ scalacJVMVersion := "1.7",
+
+ javacOptions in Compile ++= Seq(
+ "-encoding", "UTF-8",
+ "-source", javacJVMVersion.value,
+ "-target", javacJVMVersion.value
+ ),
scalacOptions in Compile ++= Seq(
+ s"-target:jvm-${scalacJVMVersion.value}",
"-sourcepath", (baseDirectory in ThisBuild).value.getAbsolutePath // Required for relative source links in scaladoc
),
@@ -241,8 +252,9 @@ object SparkBuild extends PomBuild {
enable(Flume.settings)(streamingFlumeSink)
- enable(DockerIntegrationTests.settings)(dockerIntegrationTests)
+ enable(Java8TestSettings.settings)(java8Tests)
+ enable(DockerIntegrationTests.settings)(dockerIntegrationTests)
/**
* Adds the ability to run the spark shell directly from SBT without building an assembly
@@ -591,6 +603,16 @@ object Unidoc {
)
}
+object Java8TestSettings {
+ import BuildCommons._
+
+ lazy val settings = Seq(
+ javacJVMVersion := "1.8",
+ // Targeting Java 8 bytecode is only supported in Scala 2.11.4 and higher:
+ scalacJVMVersion := (if (System.getProperty("scala-2.11") == "true") "1.8" else "1.7")
+ )
+}
+
object TestSettings {
import BuildCommons._