|
| 1 | +lazy val noPublishSettings = Seq( |
| 2 | + publish := (), |
| 3 | + publishLocal := (), |
| 4 | + publishArtifact := false |
| 5 | +) |
| 6 | + |
1 | 7 | lazy val root = (project in file("."))
|
2 | 8 | .settings(mainClass in Universal := Some("org.scalaexercises.evaluator.EvaluatorServer"))
|
3 | 9 | .settings(stage <<= (stage in Universal in `evaluator-server`))
|
4 |
| - .aggregate(`evaluator-server`, `evaluator-shared`, `evaluator-client`) |
| 10 | + .settings(noPublishSettings: _*) |
| 11 | + .aggregate(`evaluator-server`, `evaluator-shared-jvm`, `evaluator-shared-js`, `evaluator-client-jvm`, `evaluator-client-js`) |
5 | 12 |
|
6 |
| -lazy val `evaluator-shared` = (project in file("shared")) |
| 13 | +lazy val `evaluator-shared` = (crossProject in file("shared")) |
7 | 14 | .enablePlugins(AutomateHeaderPlugin)
|
8 | 15 | .settings(name := "evaluator-shared")
|
9 | 16 |
|
10 |
| -lazy val `evaluator-client` = (project in file("client")) |
| 17 | +lazy val `evaluator-shared-jvm` = `evaluator-shared`.jvm |
| 18 | +lazy val `evaluator-shared-js` = `evaluator-shared`.js |
| 19 | + |
| 20 | +lazy val scalaJSSettings = Seq( |
| 21 | + requiresDOM := false, |
| 22 | + scalaJSUseRhino := false, |
| 23 | + jsEnv := NodeJSEnv().value |
| 24 | +) |
| 25 | + |
| 26 | +lazy val `evaluator-client` = (crossProject in file("client")) |
11 | 27 | .dependsOn(`evaluator-shared`)
|
12 | 28 | .enablePlugins(AutomateHeaderPlugin)
|
13 | 29 | .settings(
|
14 | 30 | name := "evaluator-client",
|
15 | 31 | libraryDependencies <++= libraryVersions { v => Seq(
|
16 | 32 | "org.typelevel" %% "cats-free" % v('cats),
|
17 |
| - "io.circe" %% "circe-core" % v('circe), |
18 |
| - "io.circe" %% "circe-generic" % v('circe), |
19 |
| - "io.circe" %% "circe-parser" % v('circe), |
| 33 | + "io.circe" %% "circe-core" % v('circe), |
| 34 | + "io.circe" %% "circe-generic" % v('circe), |
| 35 | + "io.circe" %% "circe-parser" % v('circe), |
20 | 36 | "org.log4s" %% "log4s" % v('log4s),
|
21 | 37 | "org.scalaj" %% "scalaj-http" % v('scalajhttp),
|
22 | 38 | "org.slf4j" % "slf4j-simple" % v('slf4j),
|
23 | 39 | // Testing libraries
|
24 | 40 | "org.scalatest" %% "scalatest" % v('scalaTest) % "test"
|
25 | 41 | )
|
26 | 42 | }
|
27 |
| - ) |
| 43 | + ) |
| 44 | + .jsSettings(scalaJSSettings: _*) |
| 45 | + |
| 46 | +lazy val `evaluator-client-jvm` = `evaluator-client`.jvm |
| 47 | +lazy val `evaluator-client-js` = `evaluator-client`.js |
28 | 48 |
|
29 | 49 | lazy val `evaluator-server` = (project in file("server"))
|
30 |
| - .dependsOn(`evaluator-shared`) |
| 50 | + .dependsOn(`evaluator-shared-jvm`) |
31 | 51 | .enablePlugins(JavaAppPackaging)
|
32 | 52 | .enablePlugins(AutomateHeaderPlugin)
|
| 53 | + .settings(noPublishSettings: _*) |
33 | 54 | .settings(
|
34 | 55 | name := "evaluator-server",
|
35 | 56 | libraryDependencies <++= libraryVersions { v => Seq(
|
|
0 commit comments