-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.sbt
97 lines (87 loc) · 3.53 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
lazy val scala3Version = "3.3.0"
lazy val junitInterfaceVersion = "0.11"
lazy val logbackversion = "1.4.8"
lazy val pekkoVersion = "1.0.0"
lazy val pprintversion = "0.8.1"
lazy val nexmarkVersion = "2.48.0"
lazy val caskVersion = "0.9.1"
lazy val upickleVersion = "3.1.0"
lazy val requestsVersion = "0.8.0"
lazy val mainargsVersion = "0.5.0"
lazy val scalajsstubsVersion = "1.1.0"
lazy val scalajsdomVersion = "2.6.0"
ThisBuild / organization := "org.portals-project"
ThisBuild / organizationName := "Portals Project"
ThisBuild / organizationHomepage := Some(url("https://portals-project.org/"))
ThisBuild / description := "Portals"
ThisBuild / licenses := List("Apache-2.0" -> new URL("https://www.apache.org/licenses/LICENSE-2.0.txt"))
ThisBuild / homepage := Some(url("https://github.com/portals-project/portals"))
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := scala3Version
ThisBuild / scalacOptions ++= Seq(
"-deprecation",
"-encoding",
"UTF-8",
"-explaintypes",
"-feature",
"-unchecked",
// "-Wunused:all",
"-Xfatal-warnings",
)
lazy val portals = crossProject(JSPlatform, JVMPlatform)
.in(file("portals-core"))
.settings(
name := "portals-core",
Compile / doc / target := target.value / "api",
libraryDependencies += "com.lihaoyi" %%% "pprint" % pprintversion,
libraryDependencies += "org.apache.pekko" % "pekko-actor-typed_3" % pekkoVersion,
libraryDependencies += "org.scala-js" %% "scalajs-stubs" % scalajsstubsVersion,
)
.jvmSettings(
libraryDependencies += "ch.qos.logback" % "logback-classic" % logbackversion,
libraryDependencies += "com.novocode" % "junit-interface" % junitInterfaceVersion % "test",
)
.jsSettings()
lazy val benchmark = project
.in(file("portals-benchmark"))
.settings(
name := "portals-benchmark",
resolvers += "confluent" at "https://packages.confluent.io/maven/", // NEXMark benchmark
libraryDependencies += "org.apache.beam" % "beam-sdks-java-nexmark" % nexmarkVersion, // NEXMark benchmark
libraryDependencies += "org.apache.pekko" % "pekko-actor-typed_3" % pekkoVersion,
)
.dependsOn(portals.jvm % "test->test;compile->compile")
lazy val examples = project
.in(file("portals-examples"))
.settings(
name := "portals-examples",
libraryDependencies += "com.novocode" % "junit-interface" % junitInterfaceVersion % "test",
)
.dependsOn(portals.jvm % "test->test;compile->compile")
lazy val distributed = project
.in(file("portals-distributed"))
.settings(
name := "portals-distributed",
libraryDependencies += "com.lihaoyi" %% "cask" % caskVersion,
libraryDependencies += "com.lihaoyi" %% "upickle" % upickleVersion,
libraryDependencies += "com.lihaoyi" %% "requests" % requestsVersion,
libraryDependencies += "com.lihaoyi" %% "mainargs" % mainargsVersion,
)
.dependsOn(portals.jvm % "test->test;compile->compile")
.dependsOn(examples % "test->test;compile->compile")
.dependsOn(libraries % "test->test;compile->compile")
lazy val portalsjs = crossProject(JSPlatform)
.in(file("portals-portalsjs"))
.settings(
name := "portals-portalsjs",
libraryDependencies += "org.scala-js" %%% "scalajs-dom" % scalajsdomVersion,
Compile / scalaJSLinkerConfig ~= { _.withSourceMap(false) },
)
.dependsOn(portals % "test->test;compile->compile")
lazy val libraries = project
.in(file("portals-libraries"))
.settings(
name := "portals-libraries",
libraryDependencies += "com.novocode" % "junit-interface" % junitInterfaceVersion % "test",
)
.dependsOn(portals.jvm % "test->test;compile->compile")