build.sc
author Tomas Zeman <tomas@functionals.cz>
Wed, 19 Apr 2023 13:37:45 +0200
changeset 21 ce3dba8f47dd
parent 18 344e0506d659
permissions -rw-r--r--
visjs: 0.3-SNAPSHOT -> 0.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     1
/*
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     2
 * REPL:
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     3
 *
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     4
 * ./mill --repl -w
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     5
 *
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     6
 * Generate Idea project:
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     7
 *
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     8
 * ./mill mill.scalalib.GenIdea/idea
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
     9
 *
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    10
 */
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    11
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    12
import mill._
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    13
import mill.api.Loose
12
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    14
import mill.define.{Command, Target}
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    15
import mill.scalajslib._
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    16
import mill.scalalib._
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    17
import mill.scalalib.publish._
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    18
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    19
object V {
21
ce3dba8f47dd visjs: 0.3-SNAPSHOT -> 0.3
Tomas Zeman <tomas@functionals.cz>
parents: 18
diff changeset
    20
  val visjs = "0.3"
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    21
  val scalaJs = "1.12.0"
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    22
  val scala211 = "2.11.12"
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    23
  val scala212 = "2.12.17"
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    24
  val scala213 = "2.13.10"
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    25
}
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    26
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    27
object D {
18
344e0506d659 scalaJsDom: revert to 1.2.0 (compatibility reasons)
Tomas Zeman <tomas@functionals.cz>
parents: 17
diff changeset
    28
  val scalaJsDom = ivy"org.scala-js::scalajs-dom::1.2.0"
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    29
}
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    30
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    31
class VisJs(val crossScalaVersion: String) extends CrossScalaModule with
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    32
  ScalaJSModule with PublishModule {
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    33
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    34
  override def artifactName: T[String] = "visjs"
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    35
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    36
  override def scalaJSVersion: Target[String] = V.scalaJs
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    37
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    38
  override def publishVersion: Target[String] = V.visjs
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    39
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    40
  override def pomSettings = PomSettings(
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    41
    description = "Scala.js library facade for vis.js",
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    42
    organization = "cz.functionals",
5
e3b7591ba6b6 Fixed project url
Tomas Zeman <tomas@functionals.cz>
parents: 4
diff changeset
    43
    url = "https://hg.functionals.cz/visjs",
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    44
    licenses = Seq(License.`Apache-2.0`),
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    45
    versionControl = VersionControl(developerConnection = Some(
12
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    46
      "ssh://tzeman@hg.functionals.cz/repos/public/visjs")),
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    47
    developers = Seq(
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    48
      Developer("tzeman", "Tomas Zeman", "")
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    49
    )
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    50
  )
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    51
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    52
  override def scalacOptions = T{Seq(
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    53
    "-deprecation",                      // Emit warning and location for usages of deprecated APIs.
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    54
    "-encoding", "utf-8",                // Specify character encoding used by source files.
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    55
    "-explaintypes",                     // Explain type errors in more detail.
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    56
    "-feature",                          // Emit warning and location for usages of features that should be imported explicitly.
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    57
    "-language:higherKinds",             // Allow higher-kinded types
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    58
    "-unchecked",                        // Enable additional warnings where generated code depends on assumptions.
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    59
    "-Xcheckinit"                        // Wrap field accessors to throw an exception on uninitialized access.
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    60
  )}
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    61
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    62
  override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalaJsDom)
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    63
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    64
}
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    65
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    66
object visjs extends Cross[VisJs](V.scala211, V.scala212, V.scala213)
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    67
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    68
def compileAll(): Command[Unit] = T.command{
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    69
  visjs(V.scala211).compile()
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    70
  visjs(V.scala212).compile()
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    71
  visjs(V.scala213).compile()
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    72
  ()
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    73
}
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    74
12
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    75
def publishLocal(): Command[Unit] = T.command{
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    76
  visjs(V.scala211).publishLocal()()
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    77
  visjs(V.scala212).publishLocal()()
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    78
  visjs(V.scala213).publishLocal()()
12
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    79
  ()
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    80
}
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    81
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    82
def publishM2Local(p: os.Path): Command[Unit] = T.command{
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    83
  visjs(V.scala211).publishM2Local(p.toString)()
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    84
  visjs(V.scala212).publishM2Local(p.toString)()
17
4245abe80f45 Scala update, support for 2.13. Dependencies / mill update.
Tomas Zeman <tomas@functionals.cz>
parents: 15
diff changeset
    85
  visjs(V.scala213).publishM2Local(p.toString)()
12
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    86
  ()
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    87
}
17c0f1a439d2 build: publish local targets; fixed developerConnection url
Tomas Zeman <tomas@functionals.cz>
parents: 5
diff changeset
    88
0
a3f8b52a99ca Project skeleton
Tomas Zeman <tomas@functionals.cz>
parents:
diff changeset
    89
// vim: et ts=2 sw=2 syn=scala