Cross compile against ScalaJS 1.3.1 (in addition to 0.6)
authorTomas Zeman <tomas@functionals.cz>
Sat, 26 Dec 2020 14:24:11 +0100
changeset 38 be844ade3150
parent 37 b79a632713a2
child 39 d671d57178fc
Cross compile against ScalaJS 1.3.1 (in addition to 0.6)
build.sc
--- a/build.sc	Sat Dec 26 13:44:11 2020 +0100
+++ b/build.sc	Sat Dec 26 14:24:11 2020 +0100
@@ -20,10 +20,11 @@
 
 object V {
   val fatags = "0.6-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"
 }
 
@@ -143,40 +144,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, V.scala213)
-object js extends Cross[JsModule](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).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).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).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)()
   ()
 }
 
@@ -186,7 +202,7 @@
 
   override def scalacOptions: T[Seq[String]] = T{compilerOptions}
 
-  override def moduleDeps: Seq[PublishModule] = Seq(js(V.scala213))
+  override def moduleDeps: Seq[PublishModule] = Seq(js(V.scala213, V.scalaJs))
 
 }