build.sc
changeset 17 4245abe80f45
parent 15 d1243c5a801c
child 18 344e0506d659
--- a/build.sc	Tue Jan 31 16:46:11 2023 +0100
+++ b/build.sc	Tue Jan 31 20:47:44 2023 +0100
@@ -1,3 +1,14 @@
+/*
+ * REPL:
+ *
+ * ./mill --repl -w
+ *
+ * Generate Idea project:
+ *
+ * ./mill mill.scalalib.GenIdea/idea
+ *
+ */
+
 import mill._
 import mill.api.Loose
 import mill.define.{Command, Target}
@@ -7,13 +18,14 @@
 
 object V {
   val visjs = "0.3-SNAPSHOT"
-  val scalaJs = "0.6.28"
+  val scalaJs = "1.12.0"
   val scala211 = "2.11.12"
-  val scala212 = "2.12.9"
+  val scala212 = "2.12.17"
+  val scala213 = "2.13.10"
 }
 
 object D {
-  val scalaJsDom = ivy"org.scala-js::scalajs-dom::0.9.7"
+  val scalaJsDom = ivy"org.scala-js::scalajs-dom::2.3.0"
 }
 
 class VisJs(val crossScalaVersion: String) extends CrossScalaModule with
@@ -43,31 +55,34 @@
     "-explaintypes",                     // Explain type errors in more detail.
     "-feature",                          // Emit warning and location for usages of features that should be imported explicitly.
     "-language:higherKinds",             // Allow higher-kinded types
-    "-language:implicitConversions",     // Allow definition of implicit functions called views
-    "-language:reflectiveCalls",
-    "-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",
-    "-P:scalajs:sjsDefinedByDefault"
+    "-Xcheckinit"                        // Wrap field accessors to throw an exception on uninitialized access.
   )}
 
   override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalaJsDom)
 
 }
 
-object visjs extends Cross[VisJs](V.scala211, V.scala212)
+object visjs extends Cross[VisJs](V.scala211, V.scala212, V.scala213)
+
+def compileAll(): Command[Unit] = T.command{
+  visjs(V.scala211).compile()
+  visjs(V.scala212).compile()
+  visjs(V.scala213).compile()
+  ()
+}
 
 def publishLocal(): Command[Unit] = T.command{
   visjs(V.scala211).publishLocal()()
   visjs(V.scala212).publishLocal()()
+  visjs(V.scala213).publishLocal()()
   ()
 }
 
 def publishM2Local(p: os.Path): Command[Unit] = T.command{
   visjs(V.scala211).publishM2Local(p.toString)()
   visjs(V.scala212).publishM2Local(p.toString)()
+  visjs(V.scala213).publishM2Local(p.toString)()
   ()
 }