2023-01-08 17:13:31 +08:00
|
|
|
/*
|
|
|
|
|
* 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
|
|
|
|
|
*
|
2023-06-22 14:19:26 +01:00
|
|
|
* This file is part of the Apache Pekko project, which was derived from Akka.
|
2023-01-08 17:13:31 +08:00
|
|
|
*/
|
|
|
|
|
|
2019-10-03 05:02:40 +02:00
|
|
|
/*
|
2022-02-04 12:36:44 +01:00
|
|
|
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
|
2019-10-03 05:02:40 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import java.io.File
|
|
|
|
|
|
|
|
|
|
import sbt._
|
|
|
|
|
import sbt.librarymanagement.SemanticSelector
|
|
|
|
|
import sbt.librarymanagement.VersionNumber
|
|
|
|
|
|
|
|
|
|
object JdkOptions extends AutoPlugin {
|
|
|
|
|
|
2024-01-28 17:46:03 +08:00
|
|
|
object JavaVersion {
|
2025-07-30 13:34:30 +01:00
|
|
|
val majorVersion: Int = java.lang.Runtime.version().feature()
|
2024-01-28 17:46:03 +08:00
|
|
|
}
|
|
|
|
|
|
2025-09-21 22:12:19 +01:00
|
|
|
val targetJavaVersion = "17"
|
|
|
|
|
|
2024-01-22 07:15:16 +01:00
|
|
|
lazy val versionSpecificJavaOptions =
|
2025-07-30 13:34:30 +01:00
|
|
|
// 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] =
|
2025-09-21 22:12:19 +01:00
|
|
|
Seq("-release", JdkOptions.targetJavaVersion) ++ {
|
|
|
|
|
if (scalaVersion.startsWith("3.")) Seq(s"-Xtarget:${targetJavaVersion}") else Seq.empty
|
|
|
|
|
}
|
2025-07-30 13:34:30 +01:00
|
|
|
|
2025-09-21 22:12:19 +01:00
|
|
|
val targetJdkJavacOptions = Seq("--release", targetJavaVersion)
|
2019-10-03 05:02:40 +02:00
|
|
|
}
|