pekko/project/JdkOptions.scala
PJ Fanning 183fda795f
refactor compiler options (#2253)
* refactor compiler options

* move jdk9 test into standard test source

* Fix scalacOptions flag from '--release' to '-release'

* whitespace

* unused import

* Update IterablePublisherViaJavaFlowPublisherTest.scala

* Update Jdk9.scala
2025-09-21 22:12:19 +01:00

43 lines
1.2 KiB
Scala

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* license agreements; and to You under the Apache License, version 2.0:
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* This file is part of the Apache Pekko project, which was derived from Akka.
*/
/*
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
*/
import java.io.File
import sbt._
import sbt.librarymanagement.SemanticSelector
import sbt.librarymanagement.VersionNumber
object JdkOptions extends AutoPlugin {
object JavaVersion {
val majorVersion: Int = java.lang.Runtime.version().feature()
}
val targetJavaVersion = "17"
lazy val versionSpecificJavaOptions =
// for virtual threads
"--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED" ::
"--add-opens=java.base/java.lang=ALL-UNNAMED" ::
// for aeron
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED" ::
// for LevelDB
"--add-opens=java.base/java.nio=ALL-UNNAMED" :: Nil
def targetJdkScalacOptions(scalaVersion: String): Seq[String] =
Seq("-release", JdkOptions.targetJavaVersion) ++ {
if (scalaVersion.startsWith("3.")) Seq(s"-Xtarget:${targetJavaVersion}") else Seq.empty
}
val targetJdkJavacOptions = Seq("--release", targetJavaVersion)
}