-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sbt
61 lines (54 loc) · 1.77 KB
/
build.sbt
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
def defModule(dir: String, id: String = null): Project = Project(Option(id).getOrElse(dir), file(dir))
.settings(
crossScalaVersions := Seq("2.12.2"),
scalaVersion := crossScalaVersions.value.head,
organization := "pro.ulan.html-dsl",
version := "1.0-SNAPSHOT",
scalaSource in Compile := baseDirectory.value / "src",
scalaSource in Test := baseDirectory.value / "test"
)
lazy val core = defModule("core")
.enablePlugins(ScalaJSPlugin)
.settings(
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "0.9.1" % "provided",
"org.scalatest" %%% "scalatest" % "3.0.1" % "provided"
))
lazy val htmlDsl = defModule(".", "html-dsl")
.aggregate(core, backends, fooJS, fooJVM)
.settings(
ideExcludedDirectories := Seq(file("node_modules"))
)
lazy val backends = defModule("backends", "backends")
.aggregate(objectBackend, domBackend)
lazy val objectBackend = defModule("backends/object", "object-backend")
.dependsOn(core % "compile->compile;test->test")
.settings(
libraryDependencies ++= Seq(
"org.owasp.encoder" % "encoder" % "1.2.1",
"org.scalatest" %% "scalatest" % "3.0.1" % "test"
)
)
lazy val domBackend = defModule("backends/dom", "dom-backend")
.dependsOn(core % "compile->compile;test->test")
.enablePlugins(ScalaJSPlugin)
.settings(
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "0.9.1",
"org.scalatest" %%% "scalatest" % "3.0.1" % "test"
),
jsDependencies in Test += RuntimeDOM
)
lazy val foo = crossProject.in(file("foo")).
settings(
name := "foo",
version := "0.1-SNAPSHOT"
).
jvmSettings(
// Add JVM-specific settings here
).
jsSettings(
// Add JS-specific settings here
)
lazy val fooJVM = foo.jvm
lazy val fooJS = foo.js