-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.sbt
89 lines (77 loc) · 2.72 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
ThisBuild / organization := "com.github.marcinzh"
ThisBuild / version := "1.0.0"
ThisBuild / scalaVersion := "3.6.1"
ThisBuild / watchBeforeCommand := Watch.clearScreen
ThisBuild / watchTriggeredMessage := Watch.clearScreenOnTrigger
ThisBuild / watchForceTriggerOnAnyChange := true
ThisBuild / scalacOptions ++= Seq(
"-deprecation",
"-feature",
"-unchecked",
"-Xfatal-warnings",
"-Xkind-projector:underscores",
"-language:experimental.betterFors",
)
val Deps = {
val v_kyo = "0.10.2"
val v_tur = "0.98.0"
object deps {
val scalatest = "org.scalatest" %% "scalatest" % "3.2.19" % "test"
val catsCore = "org.typelevel" %% "cats-core" % "2.12.0"
val catsMtl = "org.typelevel" %% "cats-mtl" % "1.5.0"
val catsEff = "org.atnos" %% "eff" % "7.0.4"
val catsEffect = "org.typelevel" %% "cats-effect" % "3.5.4"
val zio = "dev.zio" %% "zio" % "2.1-RC1"
val zioPrelude = "dev.zio" %% "zio-prelude" % "1.0.0-RC31"
val turbolift = "io.github.marcinzh" %% "turbolift-core" % v_tur
val turbolift_bindless = "io.github.marcinzh" %% "turbolift-bindless" % v_tur
val betterFiles = ("com.github.pathikrit" %% "better-files" % "3.9.2").cross(CrossVersion.for3Use2_13)
val kyo = "io.getkyo" %% "kyo-core" % v_kyo
val kyo_direct = "io.getkyo" %% "kyo-direct" % v_kyo
}
deps
}
lazy val root = project
.in(file("."))
.settings(sourcesInBase := false)
.aggregate(core, chart, diy, meta, bench)
lazy val core = project
.in(file("modules/core"))
.settings(name := "effect-zoo-core")
.settings(libraryDependencies ++= Seq(
Deps.scalatest,
Deps.catsCore,
Deps.catsMtl,
Deps.catsEff,
Deps.catsEffect,
Deps.turbolift,
Deps.turbolift_bindless,
Deps.zio,
Deps.zioPrelude,
Deps.kyo,
Deps.kyo_direct,
))
lazy val chart = project
.in(file("modules/chart"))
.settings(name := "effect-zoo-chart")
lazy val diy = project
.in(file("modules/diy"))
.settings(name := "effect-zoo-diy")
.settings(run / fork := true)
.settings(javaOptions ++= Seq("-Xms2g", "-Xmx2g"))
.dependsOn(core, chart)
lazy val meta = project
.in(file("modules/meta"))
.settings(name := "effect-zoo-meta")
.settings(libraryDependencies += Deps.betterFiles)
.dependsOn(core)
lazy val bench = project
.in(file("modules/bench"))
.settings(name := "effect-zoo-bench")
.dependsOn(core, chart)
.enablePlugins(JmhPlugin)
.settings(Jmh / run / mainClass := Some("effect_zoo.bench.Main"))
addCommandAlias("runbench", "bench/Jmh/run -i 10 -wi 10 -f1 -t1 -r 1 -w 1")
addCommandAlias("runbench3", "bench/Jmh/run -i 5 -wi 3 -f1 -t1 -r 3 -w 3")
addCommandAlias("runbench10", "bench/Jmh/run -i 5 -wi 3 -f1 -t1 -r 10 -w 10")
addCommandAlias("runbench1", "bench/Jmh/run -i 1 -wi 1 -f1 -t1 -r 1 -w 1")