build.sc
changeset 17 4245abe80f45
parent 15 d1243c5a801c
child 18 344e0506d659
equal deleted inserted replaced
16:e01a46f45b02 17:4245abe80f45
       
     1 /*
       
     2  * REPL:
       
     3  *
       
     4  * ./mill --repl -w
       
     5  *
       
     6  * Generate Idea project:
       
     7  *
       
     8  * ./mill mill.scalalib.GenIdea/idea
       
     9  *
       
    10  */
       
    11 
     1 import mill._
    12 import mill._
     2 import mill.api.Loose
    13 import mill.api.Loose
     3 import mill.define.{Command, Target}
    14 import mill.define.{Command, Target}
     4 import mill.scalajslib._
    15 import mill.scalajslib._
     5 import mill.scalalib._
    16 import mill.scalalib._
     6 import mill.scalalib.publish._
    17 import mill.scalalib.publish._
     7 
    18 
     8 object V {
    19 object V {
     9   val visjs = "0.3-SNAPSHOT"
    20   val visjs = "0.3-SNAPSHOT"
    10   val scalaJs = "0.6.28"
    21   val scalaJs = "1.12.0"
    11   val scala211 = "2.11.12"
    22   val scala211 = "2.11.12"
    12   val scala212 = "2.12.9"
    23   val scala212 = "2.12.17"
       
    24   val scala213 = "2.13.10"
    13 }
    25 }
    14 
    26 
    15 object D {
    27 object D {
    16   val scalaJsDom = ivy"org.scala-js::scalajs-dom::0.9.7"
    28   val scalaJsDom = ivy"org.scala-js::scalajs-dom::2.3.0"
    17 }
    29 }
    18 
    30 
    19 class VisJs(val crossScalaVersion: String) extends CrossScalaModule with
    31 class VisJs(val crossScalaVersion: String) extends CrossScalaModule with
    20   ScalaJSModule with PublishModule {
    32   ScalaJSModule with PublishModule {
    21 
    33 
    41     "-deprecation",                      // Emit warning and location for usages of deprecated APIs.
    53     "-deprecation",                      // Emit warning and location for usages of deprecated APIs.
    42     "-encoding", "utf-8",                // Specify character encoding used by source files.
    54     "-encoding", "utf-8",                // Specify character encoding used by source files.
    43     "-explaintypes",                     // Explain type errors in more detail.
    55     "-explaintypes",                     // Explain type errors in more detail.
    44     "-feature",                          // Emit warning and location for usages of features that should be imported explicitly.
    56     "-feature",                          // Emit warning and location for usages of features that should be imported explicitly.
    45     "-language:higherKinds",             // Allow higher-kinded types
    57     "-language:higherKinds",             // Allow higher-kinded types
    46     "-language:implicitConversions",     // Allow definition of implicit functions called views
       
    47     "-language:reflectiveCalls",
       
    48     "-language:postfixOps",
       
    49     "-unchecked",                        // Enable additional warnings where generated code depends on assumptions.
    58     "-unchecked",                        // Enable additional warnings where generated code depends on assumptions.
    50     "-Xcheckinit",                       // Wrap field accessors to throw an exception on uninitialized access.
    59     "-Xcheckinit"                        // Wrap field accessors to throw an exception on uninitialized access.
    51     "-Xfuture",                          // Turn on future language features.
       
    52     "-target:jvm-1.8",
       
    53     "-P:scalajs:sjsDefinedByDefault"
       
    54   )}
    60   )}
    55 
    61 
    56   override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalaJsDom)
    62   override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalaJsDom)
    57 
    63 
    58 }
    64 }
    59 
    65 
    60 object visjs extends Cross[VisJs](V.scala211, V.scala212)
    66 object visjs extends Cross[VisJs](V.scala211, V.scala212, V.scala213)
       
    67 
       
    68 def compileAll(): Command[Unit] = T.command{
       
    69   visjs(V.scala211).compile()
       
    70   visjs(V.scala212).compile()
       
    71   visjs(V.scala213).compile()
       
    72   ()
       
    73 }
    61 
    74 
    62 def publishLocal(): Command[Unit] = T.command{
    75 def publishLocal(): Command[Unit] = T.command{
    63   visjs(V.scala211).publishLocal()()
    76   visjs(V.scala211).publishLocal()()
    64   visjs(V.scala212).publishLocal()()
    77   visjs(V.scala212).publishLocal()()
       
    78   visjs(V.scala213).publishLocal()()
    65   ()
    79   ()
    66 }
    80 }
    67 
    81 
    68 def publishM2Local(p: os.Path): Command[Unit] = T.command{
    82 def publishM2Local(p: os.Path): Command[Unit] = T.command{
    69   visjs(V.scala211).publishM2Local(p.toString)()
    83   visjs(V.scala211).publishM2Local(p.toString)()
    70   visjs(V.scala212).publishM2Local(p.toString)()
    84   visjs(V.scala212).publishM2Local(p.toString)()
       
    85   visjs(V.scala213).publishM2Local(p.toString)()
    71   ()
    86   ()
    72 }
    87 }
    73 
    88 
    74 // vim: et ts=2 sw=2 syn=scala
    89 // vim: et ts=2 sw=2 syn=scala