All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.cli.commands.shared.SharedJvmOptions.scala Maven / Gradle / Ivy

There is a newer version: 1.5.0
Show newest version
package scala.cli.commands.shared

import caseapp.*
import com.github.plokhotnyuk.jsoniter_scala.core.*
import com.github.plokhotnyuk.jsoniter_scala.macros.*

import scala.cli.commands.tags

// format: off
final case class SharedJvmOptions(
  @Recurse
    sharedDebug: SharedDebugOptions = SharedDebugOptions(),

  @Group(HelpGroup.Java.toString)
  @HelpMessage("Set the Java home directory")
  @Tag(tags.should)
  @ValueDescription("path")
    javaHome: Option[String] = None,

  @Group(HelpGroup.Java.toString)
  @HelpMessage("Use a specific JVM, such as `14`, `adopt:11`, or `graalvm:21`, or `system`")
  @ValueDescription("jvm-name")
  @Tag(tags.should)
  @Name("j")
  @Tag(tags.inShortHelp)
    jvm: Option[String] = None,
  @Group(HelpGroup.Java.toString)
  @HelpMessage("JVM index URL")
  @ValueDescription("url")
  @Tag(tags.implementation)
  @Hidden
    jvmIndex: Option[String] = None,
  @Group(HelpGroup.Java.toString)
  @HelpMessage("Operating system to use when looking up in the JVM index")
  @ValueDescription("linux|linux-musl|darwin|windows|…")
  @Tag(tags.implementation)
  @Hidden
    jvmIndexOs: Option[String] = None,
  @Group(HelpGroup.Java.toString)
  @HelpMessage("CPU architecture to use when looking up in the JVM index")
  @ValueDescription("amd64|arm64|arm|…")
  @Tag(tags.implementation)
  @Hidden
    jvmIndexArch: Option[String] = None,

  @Group(HelpGroup.Java.toString)
  @HelpMessage("Javac plugin dependencies or files")
  @Tag(tags.should)
  @Hidden
    javacPlugin: List[String] = Nil,

  @Group(HelpGroup.Java.toString)
  @HelpMessage("Javac options")
  @Name("javacOpt")
  @Tag(tags.should)
  @Tag(tags.inShortHelp)
  @Hidden
    javacOption: List[String] = Nil,

  @Group(HelpGroup.Java.toString)
  @Tag(tags.implementation)
  @HelpMessage("Port for BSP debugging")
  @Hidden
    bspDebugPort: Option[String] = None
)
// format: on

object SharedJvmOptions {
  implicit lazy val parser: Parser[SharedJvmOptions]            = Parser.derive
  implicit lazy val help: Help[SharedJvmOptions]                = Help.derive
  implicit lazy val jsonCodec: JsonValueCodec[SharedJvmOptions] = JsonCodecMaker.make
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy