@@ -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,18 +38,19 @@ 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
4855 def isScala3(ver: String): Boolean = ver.startsWith("3.")
4956
@@ -65,7 +72,10 @@ object v extends Module {
6572 }
6673 }
6774
68- val scalaVersion = scalaCrossVersions.head
75+ def defaultCrossVersion = scalaCrossVersions.head
76+
77+ def defaultScalaVersion = scalaCrossToVersion(defaultCrossVersion)
78+
6979 val jmhVersion = "1.37"
7080 val osLib = mvn"com.lihaoyi::os-lib:0.10.7" // 0.11 requires Java 11
7181 val upickle = mvn"com.lihaoyi::upickle:3.3.1" // upickle 4.0 requires Scala 3.4 (we target Scala 3.3 LTS)
@@ -271,6 +281,8 @@ object circt extends Module {
271281object chisel extends Cross[Chisel](v.scalaCrossVersions)
272282
273283trait Chisel extends CrossSbtModule with HasScala2MacroAnno with HasScalaPlugin with ScalafmtModule {
284+ def scalaVersion = v.scalaCrossToVersion(crossScalaVersion)
285+
274286 override def moduleDir = super.moduleDir / os.up
275287 def svsimModule = svsim.cross(crossScalaVersion)
276288 def coreModule = core.cross(crossScalaVersion)
0 commit comments