-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.sbt
80 lines (68 loc) · 2.54 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import SPSettings._
lazy val projectName = "sp-control"
lazy val projectVersion = "0.9.11"
lazy val core = Def.setting(PublishingSettings.orgNameFull %%% "sp-core" % "0.9.11")
lazy val domain = Def.setting(PublishingSettings.orgNameFull %%% "sp-domain" % "0.9.12")
lazy val comm = Def.setting(PublishingSettings.orgNameFull %%% "sp-comm" % "0.9.11")
lazy val gui = Def.setting(PublishingSettings.orgNameFull %%% "sp-gui" % "0.9.11")
lazy val buildSettings = Seq(
name := projectName,
description := "Sequence Planner, with a focus on automation",
version := projectVersion,
libraryDependencies ++= domainDependencies.value,
libraryDependencies += domain.value,
scmInfo := Some(ScmInfo(
PublishingSettings.githubSP(projectName),
PublishingSettings.githubscm(projectName)
)
)
)
lazy val serviceSettings = Seq(
fork := true,
javaOptions += s"-Dconfig.file=${root.base.getCanonicalPath}/cluster.conf",
connectInput in run := true
)
lazy val root: Project = project.in(file("."))
.aggregate(spcontrol_api_js, spcontrol_api_jvm, spcontrol_backend, spcontrol_frontend)
.settings(defaultBuildSettings)
.settings(buildSettings)
.settings(
publish := {},
publishLocal := {},
publishArtifact := false,
Keys.`package` := file("")
)
lazy val spcontrol_api = crossProject.crossType(CrossType.Pure).in(file("api"))
.settings(
defaultBuildSettings,
buildSettings
)
lazy val spcontrol_api_jvm = spcontrol_api.jvm
lazy val spcontrol_api_js = spcontrol_api.js
// jesus christ SBT...
val cps = System.getenv("CLASSPATH")
val cp = if(cps!=null) cps.split(":").map(x => new java.io.File(x)).toSeq.classpath
else Seq[java.io.File]().classpath
lazy val spcontrol_backend = Project(base = file("backend"), id = "backend")
.settings(
libraryDependencies ++= commDependencies.value,
libraryDependencies ++= Seq(comm.value, core.value, gui.value),
defaultBuildSettings,
buildSettings,
serviceSettings,
fork in Test := true,
unmanagedClasspath in Compile ++= cp, // want Runtime here but it doesn't work
unmanagedClasspath in Test ++= cp,
mainClass in (Compile, run) := Some("sp.Launch")
)
.dependsOn(spcontrol_api_jvm)
lazy val spcontrol_frontend = Project(base = file("frontend"), id = "frontend")
.settings(
libraryDependencies ++= Seq(comm.value, gui.value),
libraryDependencies ++= guiDependencies.value,
defaultBuildSettings,
buildSettings,
jsSettings
)
.dependsOn(spcontrol_api_js)
.enablePlugins(ScalaJSPlugin)