-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sbt
105 lines (66 loc) · 4.31 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
98
99
100
101
102
103
104
name := "GettingWorkDoneWithExtensibleEffects"
version := "0.1"
ThisBuild / scalaVersion := "2.12.5"
val commonSettings = Seq(
libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-java8-compat" % "0.8.0",
"org.typelevel" %% "cats-core" % "1.1.0",
"org.typelevel" %% "mouse" % "0.17",
"io.monix" %% "monix-eval" % "3.0.0-RC1",
"org.atnos" %% "eff" % "5.2.0",
"org.atnos" %% "eff-monix" % "5.2.0",
"org.atnos" %% "eff-cats-effect" % "5.2.0",
"com.github.julien-truffaut" %% "monocle-core" % "1.5.1-cats",
"com.github.julien-truffaut" %% "monocle-generic" % "1.5.1-cats",
"com.github.julien-truffaut" %% "monocle-macro" % "1.5.1-cats",
"org.specs2" %% "specs2-core" % "4.0.3" % "test"
),
// to write types like Reader[String, ?]
addCompilerPlugin("org.spire-math" %% "kind-projector" % "0.9.6"),
//to allow tuple extraction and type ascription in for expressions
addCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.2.0"),
// to get types like Reader[String, ?] (with more than one type parameter) correctly inferred for scala 2.12.x
scalacOptions += "-Ypartial-unification",
scalacOptions in Test += "-Yrangepos"
)
lazy val exerciseClassic = (project in file("exerciseClassic")).settings(commonSettings)
lazy val exerciseTask = (project in file("exerciseTask")).settings(commonSettings)
lazy val exerciseReader = (project in file("exerciseReader")).settings(commonSettings)
lazy val exerciseError = (project in file("exerciseError")).settings(commonSettings)
lazy val exerciseWriter = (project in file("exerciseWriter")).settings(commonSettings)
lazy val exerciseConcurrent = (project in file("exerciseConcurrent")).settings(commonSettings)
lazy val exerciseState = (project in file("exerciseState")).settings(commonSettings)
lazy val exerciseOptics = (project in file("exerciseOptics")).settings(commonSettings)
lazy val exerciseCustom = (project in file("exerciseCustom")).settings(commonSettings)
lazy val solutionExerciseClassic = (project in file("solutions/exerciseClassic")).settings(commonSettings)
lazy val solutionExerciseTask = (project in file("solutions/exerciseTask")).settings(commonSettings)
lazy val solutionExerciseReader = (project in file("solutions/exerciseReader")).settings(commonSettings)
lazy val solutionExerciseError = (project in file("solutions/exerciseError")).settings(commonSettings)
lazy val solutionExerciseWriter = (project in file("solutions/exerciseWriter")).settings(commonSettings)
lazy val solutionExerciseConcurrent = (project in file("solutions/exerciseConcurrent")).settings(commonSettings)
lazy val solutionExerciseState = (project in file("solutions/exerciseState")).settings(commonSettings)
lazy val solutionExerciseOptics = (project in file("solutions/exerciseOptics")).settings(commonSettings)
lazy val solutionExerciseCustom = (project in file("solutions/exerciseCustom")).settings(commonSettings)
lazy val exercise1 = (project in file("exercise1")).settings(commonSettings)
lazy val exercise2 = (project in file("exercise2")).settings(commonSettings)
lazy val exercise3 = (project in file("exercise3")).settings(commonSettings)
lazy val exercise4 = (project in file("exercise4")).settings(commonSettings)
lazy val exercise5 = (project in file("exercise5")).settings(commonSettings)
lazy val solutionExercise1 = (project in file("solutions/exercise1")).settings(commonSettings)
lazy val solutionExercise2 = (project in file("solutions/exercise2")).settings(commonSettings)
lazy val solutionExercise2io = (project in file("solutions/exercise2io")).settings(commonSettings)
lazy val solutionExercise3 = (project in file("solutions/exercise3")).settings(commonSettings)
lazy val solutionExercise4 = (project in file("solutions/exercise4")).settings(commonSettings)
lazy val solutionExercise5 = (project in file("solutions/exercise5")).settings(commonSettings)
val testSolutions = TaskKey[Unit]("testSolutions", "Run all solution tests")
testSolutions := Seq(
solutionExerciseClassic / Test / test,
solutionExerciseTask / Test / test,
solutionExerciseReader / Test / test,
solutionExerciseError / Test / test,
solutionExerciseWriter / Test / test,
solutionExerciseState / Test / test,
solutionExerciseConcurrent / Test / test,
solutionExerciseOptics / Test / test,
solutionExerciseCustom / Test / test,
).dependOn.value