Skip to content

Commit

Permalink
Release flag (#2413)
Browse files Browse the repository at this point in the history
* Skip passing the release flag only if java is equal 8

* Fix Java 8 - create directory for classes

* Add test
  • Loading branch information
lwronski committed Sep 25, 2023
1 parent 3e4a9e6 commit 8f084ea
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 7 deletions.
2 changes: 2 additions & 0 deletions modules/build/src/main/scala/scala/build/Build.scala
Original file line number Diff line number Diff line change
Expand Up @@ -779,6 +779,8 @@ object Build {
)
)
None
else if (compilerJvmVersionOpt.isEmpty && javaHome.value.version == 8)
None
else
Some(javaHome.value.version)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ final case class SimpleJavaCompiler(
project.javaHomeOpt.map(javaHome => SimpleJavaCompiler.javaCommand(javaHome, "javac"))
.getOrElse(defaultJavaCommand)

// Java 8 doesn't automatically create a directory for the classes
if (!os.exists(project.classesDir)) os.makeDir.all(project.classesDir)

val args = project.javacOptions ++
Seq(
"-d",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class BuildProjectTests extends munit.FunSuite {

def testJvmReleaseIsSetCorrectly(
javaHome: String,
bloopJvmVersion: Int,
bloopJvmVersion: Option[Int],
scalacOptions: Seq[String] = Nil
) = {
val options = BuildOptions(
Expand All @@ -95,7 +95,7 @@ class BuildProjectTests extends munit.FunSuite {
sources,
Nil,
options,
Some(Positioned(bloopJavaPath, bloopJvmVersion)),
bloopJvmVersion.map(bv => Positioned(bloopJavaPath, bv)),
Scope.Test,
logger,
artifacts
Expand All @@ -114,7 +114,7 @@ class BuildProjectTests extends munit.FunSuite {
val javaHome = jvm(8)
val bloopJvmVersion = 11
val (scalacOptions, javacOptions, diagnostics) =
testJvmReleaseIsSetCorrectly(javaHome, bloopJvmVersion)
testJvmReleaseIsSetCorrectly(javaHome, Some(bloopJvmVersion))
expect(scalacOptions.containsSlice(Seq("-release", "8")))
expect(javacOptions.containsSlice(Seq("--release", "8")))
expect(diagnostics.isEmpty)
Expand All @@ -125,7 +125,7 @@ class BuildProjectTests extends munit.FunSuite {
val javaHome = jvm(8)
val bloopJvmVersion = 8
val (scalacOptions, javacOptions, diagnostics) =
testJvmReleaseIsSetCorrectly(javaHome, bloopJvmVersion)
testJvmReleaseIsSetCorrectly(javaHome, Some(bloopJvmVersion))
expect(!scalacOptions.containsSlice(Seq("-release")))
expect(!javacOptions.containsSlice(Seq("--release")))
expect(diagnostics.isEmpty)
Expand All @@ -135,7 +135,7 @@ class BuildProjectTests extends munit.FunSuite {
val javaHome = jvm(11)
val bloopJvmVersion = 17
val (scalacOptions, javacOptions, diagnostics) =
testJvmReleaseIsSetCorrectly(javaHome, bloopJvmVersion)
testJvmReleaseIsSetCorrectly(javaHome, Some(bloopJvmVersion))
expect(scalacOptions.containsSlice(Seq("-release", "11")))
expect(javacOptions.containsSlice(Seq("--release", "11")))
expect(diagnostics.isEmpty)
Expand All @@ -151,7 +151,7 @@ class BuildProjectTests extends munit.FunSuite {
val javaHome = jvm(17)
val bloopJvmVersion = 11
val (scalacOptions, javacOptions, diagnostics) =
testJvmReleaseIsSetCorrectly(javaHome, bloopJvmVersion)
testJvmReleaseIsSetCorrectly(javaHome, Some(bloopJvmVersion))
expect(!scalacOptions.containsSlice(Seq("-release")))
expect(!javacOptions.containsSlice(Seq("--release")))
expect(diagnostics == List(expectedDiagnostic))
Expand All @@ -161,7 +161,7 @@ class BuildProjectTests extends munit.FunSuite {
val javaHome = jvm(11)
val bloopJvmVersion = 8
val (scalacOptions, javacOptions, diagnostics) =
testJvmReleaseIsSetCorrectly(javaHome, bloopJvmVersion, List("-release", "17"))
testJvmReleaseIsSetCorrectly(javaHome, Some(bloopJvmVersion), List("-release", "17"))
expect(scalacOptions.containsSlice(Seq("-release", "17")))
expect(!javacOptions.containsSlice(Seq("--release")))
expect(diagnostics == List(expectedDiagnostic))
Expand All @@ -183,4 +183,11 @@ class BuildProjectTests extends munit.FunSuite {

expect(project.workspace == inputs.workspace)
}
test("skip passing release flag for java 8 for ScalaSimpleCompiler") {
val javaHome = jvm(8)
val bloopJvmVersion = 17
val (_, javacOptions, _) =
testJvmReleaseIsSetCorrectly(javaHome, bloopJvmVersion = None)
expect(!javacOptions.containsSlice(Seq("--release")))
}
}

0 comments on commit 8f084ea

Please sign in to comment.