--- 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)()
()
}