-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbuild.sbt
101 lines (82 loc) · 3.19 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
import language.postfixOps
lazy val scala213 = "2.13.14"
lazy val scala304 = "3.4.2"
lazy val supportedScalaVersions = List(scala213, scala304)
ThisBuild / name := "countvotes"
ThisBuild / organization := "AOSSIE"
ThisBuild / version := "1.2"
ThisBuild / scalaVersion := scala304
resolvers += Resolver.sonatypeRepo("public")
resolvers += "Sonatype OSS Snapshots" at
"https://oss.sonatype.org/content/repositories/releases"
logBuffered := false
parallelExecution in Test := false
scalacOptions in (Compile, doc) ++= Seq("-diagrams","-implicits")
scalacOptions in Test ++= Seq("-Yrangepos")
val allSettings = Defaults.coreDefaultSettings
lazy val root = Project("agora", file("."))
.aggregate(
core,
cli
).settings(commonSettings, crossScalaVersions := Nil)
lazy val core = (project in file("modules/core"))
.configs(Testing.configs *)
.settings(Testing.settings *)
.settings(
commonSettings,
crossScalaVersions := supportedScalaVersions,
name := "core"
)
lazy val cli = (project in file("modules/cli"))
.configs(Testing.configs *)
.settings(Testing.settings *)
.dependsOn(
core
)
.settings(
commonSettings,
crossScalaVersions := supportedScalaVersions,
name := "cli"
)
lazy val commonSettings = Seq(
scalafmtOnCompile := true,
semanticdbEnabled := true,
semanticdbVersion := scalafixSemanticdb.revision,
scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature"),
// scalacOptions += "-P:semanticdb:synthetics:on",
scalacOptions += {
if (scalaVersion.value.startsWith("2.12")) "-Ywarn-unused-import"
else "-Wunused:imports"
},
libraryDependencies ++= {
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, 13)) => Seq(
"com.fasterxml.jackson.core" % "jackson-databind" % "2.9.0",
"com.github.scopt" %% "scopt" % "4.1.0",
"org.specs2" %% "specs2-core" % "4.20.6" % "test,verification-test,bench",
"com.lihaoyi" %% "ammonite-ops" % "2.4.1",
"ch.qos.logback" % "logback-classic" % "1.2.11",
"com.typesafe.scala-logging" %% "scala-logging" % "3.9.5",
"org.scala-lang.modules" %% "scala-parser-combinators" % "2.4.0",
"com.typesafe.play" %% "play-json" % "2.9.4",
"org.typelevel" %% "spire" % "0.18.0"
)
case Some((3, 4)) => Seq(
"com.fasterxml.jackson.core" % "jackson-databind" % "2.9.0",
"com.github.scopt" %% "scopt" % "4.1.0",
"org.specs2" %% "specs2-core" % "4.20.6" % "test,verification-test,bench",
("com.lihaoyi" %% "ammonite-ops" % "2.4.1").cross(CrossVersion.for3Use2_13),
"ch.qos.logback" % "logback-classic" % "1.2.11",
"com.typesafe.scala-logging" %% "scala-logging" % "3.9.5",
"org.scala-lang.modules" %% "scala-parser-combinators" % "2.4.0",
"com.typesafe.play" %% "play-json" % "2.10.6",
"org.typelevel" %% "spire" % "0.18.0"
)
case _ => Nil
}
},
dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.9.0"
)
licenses := Seq("CC BY-NC-SA" -> url("http://creativecommons.org/licenses/by-nc-sa/4.0/"))
homepage := Some(url("https://www.gitlab.com/aossie/Agora"))
addCommandAlias("fix-lint", ";scalafixAll; scalafmtSbt;")