-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sc
85 lines (70 loc) · 3.11 KB
/
build.sc
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import $ivy.`com.lihaoyi::mill-contrib-bloop:$MILL_VERSION`
import mill._
import mill.scalalib._
import mill.scalajslib._
import mill.scalajslib.api._
import $ivy.`io.indigoengine::mill-indigo:0.9.2`, millindigo._
object game extends ScalaJSModule with MillIndigo {
def scalaVersion = "3.0.2"
def scalaJSVersion = "1.7.0"
val gameAssetsDirectory: os.Path = os.pwd / "assets"
val showCursor: Boolean = true
val title: String = "Robogenesis"
val windowStartWidth: Int = 550
val windowStartHeight: Int = 400
def buildGame() = T.command {
T {
compile()
fastOpt()
indigoBuild()()
}
}
def runGame() = T.command {
T {
compile()
fastOpt()
indigoRun()()
}
}
val indigoVersion = "0.9.2"
def ivyDeps = Agg(
ivy"io.indigoengine::indigo-json-circe::$indigoVersion",
ivy"io.indigoengine::indigo::$indigoVersion",
ivy"io.indigoengine::indigo-extras::$indigoVersion"
)
def scalacOptions = super.scalacOptions() ++ ScalacOptions.compile
object test extends Tests {
def ivyDeps = Agg(
ivy"org.scalameta::munit::0.7.26"
)
def testFramework = "munit.Framework"
override def moduleKind = T(mill.scalajslib.api.ModuleKind.CommonJSModule)
def scalacOptions = super.scalacOptions() ++ ScalacOptions.test
}
}
object ScalacOptions {
lazy val compile: Seq[String] = Seq(
"-deprecation", // Emit warning and location for usages of deprecated APIs.
"-encoding",
"utf-8", // Specify character encoding used by source files.
"-feature", // Emit warning and location for usages of features that should be imported explicitly.
"-language:existentials", // Existential types (besides wildcard types) can be written and inferred
"-language:experimental.macros", // Allow macro definition (besides implementation and application)
"-language:higherKinds", // Allow higher-kinded types
"-language:implicitConversions", // Allow definition of implicit functions called views
"-unchecked", // Enable additional warnings where generated code depends on assumptions.
"-Xfatal-warnings" // Fail the compilation if there are any warnings.
// "-language:strictEquality" // Scala 3 - Multiversal Equality
)
lazy val test: Seq[String] = Seq(
"-deprecation", // Emit warning and location for usages of deprecated APIs.
"-encoding",
"utf-8", // Specify character encoding used by source files.
"-feature", // Emit warning and location for usages of features that should be imported explicitly.
"-language:existentials", // Existential types (besides wildcard types) can be written and inferred
"-language:experimental.macros", // Allow macro definition (besides implementation and application)
"-language:higherKinds", // Allow higher-kinded types
"-language:implicitConversions", // Allow definition of implicit functions called views
"-unchecked" // Enable additional warnings where generated code depends on assumptions.
)
}