diff -r c0cf0150cb4c -r 040b435ce0dd build.sc --- a/build.sc Sat Dec 26 20:04:48 2020 +0100 +++ b/build.sc Sat Dec 26 20:15:08 2020 +0100 @@ -17,13 +17,17 @@ object V { val app = "0.3-SNAPSHOT" - val scalaJs = "0.6.33" val scala211 = "2.11.12" val scala212 = "2.12.12" + val scala213 = "2.13.4" + val scalaJs06 = "0.6.33" + val scalaJs = "1.3.1" + val scalatags = "0.9.2" } object D { - val scalatags = ivy"com.lihaoyi::scalatags::0.6.8" + val scalatags211 = ivy"com.lihaoyi::scalatags::0.6.8" + val scalatags = ivy"com.lihaoyi::scalatags::${V.scalatags}" } trait Common extends CrossSbtModule with PublishModule { @@ -53,7 +57,6 @@ "-language:postfixOps", "-unchecked", // Enable additional warnings where generated code depends on assumptions. "-Xcheckinit", // Wrap field accessors to throw an exception on uninitialized access. - "-Xfuture", // Turn on future language features. "-target:jvm-1.8" )} @@ -71,7 +74,9 @@ maskedTags contains v).headOption } - override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalatags) + override def ivyDeps: Target[Loose.Agg[Dep]] = T{ + if (scalaVersion() == V.scala211) Agg(D.scalatags211) else Agg(D.scalatags) + } override def sources: Sources = T.sources{ super.sources() :+ PathRef(millSourcePath / 'shared / 'src / 'main / 'scala) @@ -84,35 +89,55 @@ } class JvmModule(val crossScalaVersion: String) extends Common -class JsModule(val crossScalaVersion: String) extends ScalaJSModule - with Common { - override def scalaJSVersion: Target[String] = V.scalaJs +class JsModule(val crossScalaVersion: String, crossJSVersion: String) + extends ScalaJSModule with Common { + + override def scalaJSVersion: Target[String] = crossJSVersion + + override def millSourcePath = super.millSourcePath / os.up } -object jvm extends Cross[JvmModule](V.scala211, V.scala212) -object js extends Cross[JsModule](V.scala211, V.scala212) +object jvm extends Cross[JvmModule](V.scala211, V.scala212, V.scala213) +object js extends Cross[JsModule]( + V.scala211 -> V.scalaJs06, + V.scala212 -> V.scalaJs06, + V.scala212 -> V.scalaJs, + V.scala213 -> V.scalaJs06, + V.scala213 -> V.scalaJs +) def compileAll(): Command[Unit] = T.command{ + jvm(V.scala213).compile() + js(V.scala213, V.scalaJs).compile() + js(V.scala213, V.scalaJs06).compile() jvm(V.scala212).compile() - js(V.scala212).compile() + js(V.scala212, V.scalaJs).compile() + js(V.scala212, V.scalaJs06).compile() jvm(V.scala211).compile() - js(V.scala211).compile() + js(V.scala211, V.scalaJs06).compile() () } def publishLocal(): Command[Unit] = T.command{ + jvm(V.scala213).publishLocal()() + js(V.scala213, V.scalaJs).publishLocal()() + js(V.scala213, V.scalaJs06).publishLocal()() jvm(V.scala212).publishLocal()() - js(V.scala212).publishLocal()() + js(V.scala212, V.scalaJs).publishLocal()() + js(V.scala212, V.scalaJs06).publishLocal()() jvm(V.scala211).publishLocal()() - js(V.scala211).publishLocal()() - () + js(V.scala211, V.scalaJs06).publishLocal()() } def publishM2Local(p: os.Path): Command[Unit] = T.command{ + jvm(V.scala213).publishM2Local(p.toString)() + js(V.scala213, V.scalaJs).publishM2Local(p.toString)() + js(V.scala213, V.scalaJs06).publishM2Local(p.toString)() jvm(V.scala212).publishM2Local(p.toString)() - js(V.scala212).publishM2Local(p.toString)() + js(V.scala212, V.scalaJs).publishM2Local(p.toString)() + js(V.scala212, V.scalaJs06).publishM2Local(p.toString)() jvm(V.scala211).publishM2Local(p.toString)() - js(V.scala211).publishM2Local(p.toString)() + js(V.scala211, V.scalaJs06).publishM2Local(p.toString)() () }