-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.mill
More file actions
50 lines (40 loc) · 1.22 KB
/
Copy pathbuild.mill
File metadata and controls
50 lines (40 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package build
import mill.*, scalalib.*, scalajslib.*
trait AppScalaModule extends ScalaModule {
def scalaVersion = "3.3.6"
}
trait AppScalaJSModule extends AppScalaModule, ScalaJSModule {
def scalaJSVersion = "1.20.2"
}
object shared extends Module {
trait SharedModule extends AppScalaModule, PlatformScalaModule {
def mvnDeps = Seq(
mvn"org.virtuslab::scala-yaml::0.0.7"
)
}
def dances: T[PathRef] = Task.Source("dances")
object jvm extends SharedModule
object js extends SharedModule, AppScalaJSModule
}
object js extends AppScalaJSModule {
def moduleDeps = Seq(shared.js)
def mvnDeps = Seq(
mvn"org.scala-js::scalajs-dom::2.5.0",
mvn"com.lihaoyi::scalatags::0.12.0"
)
}
object jvm extends AppScalaModule {
def moduleDeps = Seq(shared.jvm)
def mvnDeps = Seq(
mvn"org.scala-lang.modules::scala-swing:3.0.0",
mvn"org.rogach::scallop:4.1.0",
mvn"com.lihaoyi::upickle:4.4.3"
)
private def allDances = Task {
os.write(Task.dest / "allDances.json", upickle.write(os.list(shared.dances().path).filter(_.ext == "yaml").map(_.last)))
PathRef(Task.dest)
}
override def resources: T[Seq[PathRef]] = Task {
super.resources() :+ shared.dances() :+ allDances()
}
}