From 793406e6b02ab1c62f582a3b93ce429bfd1bdd91 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Mon, 4 Nov 2024 15:33:39 +0100 Subject: [PATCH] Cross build to sbt 2.0.0-M2 --- build.sbt | 10 +++++++--- src/main/scala-2.12/org/scaladebugger/Compat.scala | 7 +++++++ src/main/scala-3/org/scaladebugger/Compat.scala | 8 ++++++++ src/main/scala/org/scaladebugger/SbtJdiTools.scala | 2 +- 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/main/scala-2.12/org/scaladebugger/Compat.scala create mode 100644 src/main/scala-3/org/scaladebugger/Compat.scala diff --git a/build.sbt b/build.sbt index b2b4223..9825275 100644 --- a/build.sbt +++ b/build.sbt @@ -14,7 +14,11 @@ licenses += ( homepage := Some(url("https://github.com/sbt/sbt-jdi-tools")) -scalaVersion := "2.12.20" +val scala212 = "2.12.20" +val scala3 = "3.3.4" + +scalaVersion := scala212 +crossScalaVersions := Seq(scala212, scala3) pluginCrossBuild / sbtVersion := { scalaBinaryVersion.value match { case "2.12" => @@ -25,11 +29,11 @@ pluginCrossBuild / sbtVersion := { } scalacOptions ++= Seq( - "-encoding", "UTF-8", "-target:jvm-1.8", + "-encoding", "UTF-8", "-deprecation", "-unchecked", "-feature", "-Xfatal-warnings" ) ++ (CrossVersion.partialVersion(scalaVersion.value) match { - case Some((2, scalaMajor)) if scalaMajor == 10 => Seq("-Ywarn-all") + case Some((2, _)) => Seq("-target:jvm-1.8") case _ => Nil }) diff --git a/src/main/scala-2.12/org/scaladebugger/Compat.scala b/src/main/scala-2.12/org/scaladebugger/Compat.scala new file mode 100644 index 0000000..367d388 --- /dev/null +++ b/src/main/scala-2.12/org/scaladebugger/Compat.scala @@ -0,0 +1,7 @@ +package org.scaladebugger + +import sbt._ + +private[scaladebugger] object Compat { + def toClassEntry(file: File): Attributed[File] = Attributed.blank(file) +} diff --git a/src/main/scala-3/org/scaladebugger/Compat.scala b/src/main/scala-3/org/scaladebugger/Compat.scala new file mode 100644 index 0000000..0d3fbcd --- /dev/null +++ b/src/main/scala-3/org/scaladebugger/Compat.scala @@ -0,0 +1,8 @@ +package org.scaladebugger + +import sbt.* + +private[scaladebugger] object Compat: + inline def toClassEntry(file: File): Attributed[HashedVirtualFileRef] = + val fc = Keys.fileConverter.value + Attributed.blank(fc.toVirtualFile(file.toPath)) diff --git a/src/main/scala/org/scaladebugger/SbtJdiTools.scala b/src/main/scala/org/scaladebugger/SbtJdiTools.scala index a71c1aa..77334e5 100644 --- a/src/main/scala/org/scaladebugger/SbtJdiTools.scala +++ b/src/main/scala/org/scaladebugger/SbtJdiTools.scala @@ -26,7 +26,7 @@ object SbtJdiTools extends AutoPlugin { Seq( // JDK Dependency (just for sbt, must exist on classpath for execution, // cannot be redistributed) - unmanagedJars += { Attributed.blank(JavaTools) } + unmanagedJars += Compat.toClassEntry(JavaTools) ) else // on Java 9+, we don't need to do anything at all