build.sc
changeset 38 be844ade3150
parent 37 b79a632713a2
child 40 4979d1ecb377
equal deleted inserted replaced
37:b79a632713a2 38:be844ade3150
    18 
    18 
    19 import scala.language.postfixOps
    19 import scala.language.postfixOps
    20 
    20 
    21 object V {
    21 object V {
    22   val fatags = "0.6-SNAPSHOT"
    22   val fatags = "0.6-SNAPSHOT"
    23   val scalaJs = "0.6.33"
       
    24   val scala211 = "2.11.12"
    23   val scala211 = "2.11.12"
    25   val scala212 = "2.12.12"
    24   val scala212 = "2.12.12"
    26   val scala213 = "2.13.4"
    25   val scala213 = "2.13.4"
       
    26   val scalaJs06 = "0.6.33"
       
    27   val scalaJs = "1.3.1"
    27   val scalatags = "0.9.2"
    28   val scalatags = "0.9.2"
    28 }
    29 }
    29 
    30 
    30 object D {
    31 object D {
    31   val scalatags211 = ivy"com.lihaoyi::scalatags::0.6.8"
    32   val scalatags211 = ivy"com.lihaoyi::scalatags::0.6.8"
   141     d
   142     d
   142   }
   143   }
   143 }
   144 }
   144 
   145 
   145 class JvmModule(val crossScalaVersion: String) extends Common
   146 class JvmModule(val crossScalaVersion: String) extends Common
   146 class JsModule(val crossScalaVersion: String) extends ScalaJSModule
   147 class JsModule(val crossScalaVersion: String, crossJSVersion: String)
   147   with Common {
   148   extends ScalaJSModule with Common {
   148   override def scalaJSVersion: Target[String] = V.scalaJs
   149 
       
   150   override def scalaJSVersion: Target[String] = crossJSVersion
       
   151 
       
   152   override def millSourcePath = super.millSourcePath / os.up
   149 }
   153 }
   150 
   154 
   151 object jvm extends Cross[JvmModule](V.scala211, V.scala212, V.scala213)
   155 object jvm extends Cross[JvmModule](V.scala211, V.scala212, V.scala213)
   152 object js extends Cross[JsModule](V.scala211, V.scala212, V.scala213)
   156 object js extends Cross[JsModule](
       
   157   V.scala211 -> V.scalaJs06,
       
   158   V.scala212 -> V.scalaJs06,
       
   159   V.scala212 -> V.scalaJs,
       
   160   V.scala213 -> V.scalaJs06,
       
   161   V.scala213 -> V.scalaJs
       
   162 )
   153 
   163 
   154 def compileAll(): Command[Unit] = T.command{
   164 def compileAll(): Command[Unit] = T.command{
   155   jvm(V.scala213).compile()
   165   jvm(V.scala213).compile()
   156   js(V.scala213).compile()
   166   js(V.scala213, V.scalaJs).compile()
       
   167   js(V.scala213, V.scalaJs06).compile()
   157   jvm(V.scala212).compile()
   168   jvm(V.scala212).compile()
   158   js(V.scala212).compile()
   169   js(V.scala212, V.scalaJs).compile()
       
   170   js(V.scala212, V.scalaJs06).compile()
   159   jvm(V.scala211).compile()
   171   jvm(V.scala211).compile()
   160   js(V.scala211).compile()
   172   js(V.scala211, V.scalaJs06).compile()
   161   ()
   173   ()
   162 }
   174 }
   163 
   175 
   164 def publishLocal(): Command[Unit] = T.command{
   176 def publishLocal(): Command[Unit] = T.command{
   165   jvm(V.scala213).publishLocal()()
   177   jvm(V.scala213).publishLocal()()
   166   js(V.scala213).publishLocal()()
   178   js(V.scala213, V.scalaJs).publishLocal()()
       
   179   js(V.scala213, V.scalaJs06).publishLocal()()
   167   jvm(V.scala212).publishLocal()()
   180   jvm(V.scala212).publishLocal()()
   168   js(V.scala212).publishLocal()()
   181   js(V.scala212, V.scalaJs).publishLocal()()
       
   182   js(V.scala212, V.scalaJs06).publishLocal()()
   169   jvm(V.scala211).publishLocal()()
   183   jvm(V.scala211).publishLocal()()
   170   js(V.scala211).publishLocal()()
   184   js(V.scala211, V.scalaJs06).publishLocal()()
   171 }
   185 }
   172 
   186 
   173 def publishM2Local(p: os.Path): Command[Unit] = T.command{
   187 def publishM2Local(p: os.Path): Command[Unit] = T.command{
   174   jvm(V.scala213).publishM2Local(p.toString)()
   188   jvm(V.scala213).publishM2Local(p.toString)()
   175   js(V.scala213).publishM2Local(p.toString)()
   189   js(V.scala213, V.scalaJs).publishM2Local(p.toString)()
       
   190   js(V.scala213, V.scalaJs06).publishM2Local(p.toString)()
   176   jvm(V.scala212).publishM2Local(p.toString)()
   191   jvm(V.scala212).publishM2Local(p.toString)()
   177   js(V.scala212).publishM2Local(p.toString)()
   192   js(V.scala212, V.scalaJs).publishM2Local(p.toString)()
       
   193   js(V.scala212, V.scalaJs06).publishM2Local(p.toString)()
   178   jvm(V.scala211).publishM2Local(p.toString)()
   194   jvm(V.scala211).publishM2Local(p.toString)()
   179   js(V.scala211).publishM2Local(p.toString)()
   195   js(V.scala211, V.scalaJs06).publishM2Local(p.toString)()
   180   ()
   196   ()
   181 }
   197 }
   182 
   198 
   183 object example extends ScalaModule with ScalaJSModule {
   199 object example extends ScalaModule with ScalaJSModule {
   184   override def scalaVersion: Target[String] = T{V.scala213}
   200   override def scalaVersion: Target[String] = T{V.scala213}
   185   override def scalaJSVersion: Target[String] = V.scalaJs
   201   override def scalaJSVersion: Target[String] = V.scalaJs
   186 
   202 
   187   override def scalacOptions: T[Seq[String]] = T{compilerOptions}
   203   override def scalacOptions: T[Seq[String]] = T{compilerOptions}
   188 
   204 
   189   override def moduleDeps: Seq[PublishModule] = Seq(js(V.scala213))
   205   override def moduleDeps: Seq[PublishModule] = Seq(js(V.scala213, V.scalaJs))
   190 
   206 
   191 }
   207 }
   192 
   208 
   193 // vim: et ts=2 sw=2 syn=scala
   209 // vim: et ts=2 sw=2 syn=scala