@@ -14,6 +14,12 @@ import mill.scalalib.scalafmt._
1414
1515object v extends Module {
1616
17+ // Add support for later Scala 2.13 by bumping this.
18+ val scala213MinorVersion: Int = 18
19+
20+ // Bump Scala 3 version by bumping this.
21+ val scala3MinorVersion: String = "3.4"
22+
1723 val javaVersion = {
1824 val rawVersion = sys.props("java.specification.version")
1925 // Older versions of Java started with 1., e.g. 1.8 == 8
@@ -32,20 +38,21 @@ object v extends Module {
3238 // Only publish plugin for 2.13.11+ when using Java > 11, but still
3339 // publish all versions when Java version <= 11.
3440 val pluginScalaCrossVersions = {
35- val latest213 = 18
3641 val java21Min213 = 11
3742 val minVersion = if (javaVersion > 11) java21Min213 else 0
38- val versions = minVersion to latest213
43+ val versions = minVersion to scala213MinorVersion
3944 val versionSeq = versions.map(v => s"2.13.$v").toSeq
40- versionSeq ++ Seq ("3.3.4 ")
45+ versionSeq :+ scalaCrossToVersion ("3")
4146 }
4247
43- val scalaCrossVersions = Seq(
44- "2.13.18",
45- "3.3.4"
46- )
48+ val scalaCrossVersions = Seq("2.13", "3")
49+
50+ def scalaCrossToVersion(major: String): String = major match {
51+ case "2.13" => s"2.13.$scala213MinorVersion"
52+ case "3" => s"3.$scala3MinorVersion"
53+ }
4754
48- def isScala3(ver: String): Boolean = ver.startsWith("3. ")
55+ def isScala3(ver: String): Boolean = ver.startsWith("3")
4956
5057 def buildUnits(): Seq[ScalaModule] = {
5158 scalaCrossVersions.flatMap { ver =>
@@ -68,7 +75,10 @@ object v extends Module {
6875 }
6976 }
7077
71- val scalaVersion = scalaCrossVersions.head
78+ def defaultCrossVersion = scalaCrossVersions.head
79+
80+ def defaultScalaVersion = scalaCrossToVersion(defaultCrossVersion)
81+
7282 val jmhVersion = "1.37"
7383 val osLib = mvn"com.lihaoyi::os-lib:0.10.7" // 0.11 requires Java 11
7484 val upickle = mvn"com.lihaoyi::upickle:3.3.1" // upickle 4.0 requires Scala 3.4 (we target Scala 3.3 LTS)
@@ -329,10 +339,12 @@ trait HasPanamaConverterModule extends ScalaModule with HasCIRCTPanamaBindingMod
329339object chisel extends Cross[Chisel](v.scalaCrossVersions)
330340
331341trait Chisel extends CrossSbtModule with HasScala2MacroAnno with HasScalaPlugin with ScalafmtModule {
342+ def scalaVersion = v.scalaCrossToVersion(crossScalaVersion)
343+
332344 override def moduleDir = super.moduleDir / os.up
333345 def svsimModule = svsim.cross(crossScalaVersion)
334346 def coreModule = core.cross(crossScalaVersion)
335- def pluginModule = plugin.cross()
347+ def pluginModule = plugin.cross(v.scalaCrossToVersion(crossScalaVersion) )
336348
337349 override def scalacOptions = Task {
338350 if (v.isScala3(crossScalaVersion)) {
0 commit comments