-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCommonBuild.scala
92 lines (76 loc) · 2.71 KB
/
CommonBuild.scala
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
import com.typesafe.tools.mima.plugin.MimaKeys.mimaPreviousArtifacts
import sbt.*
import sbt.Keys.*
import sbtgitpublish.GitPublishKeys.*
package object andxor {
val currentVersion = "0.14.1"
val catsVersion = "2.12.0"
val catsCore = "org.typelevel" %% "cats-core" % catsVersion
val catsLaws = "org.typelevel" %% "cats-laws" % catsVersion % "test"
val monocleVersion = "3.3.0"
val monocleCore = "dev.optics" %% "monocle-core" % monocleVersion
val monocleLaws = "dev.optics" %% "monocle-law" % monocleVersion % "test"
val newtype = "io.estatico" %% "newtype" % "0.4.4"
val scalacheckVersion = "1.18.1"
val scalacheck = "org.scalacheck" %% "scalacheck" % scalacheckVersion
val scalariform = ("org.scalariform" %% "scalariform" % "0.2.10").cross(CrossVersion.for3Use2_13)
trait CommonBuild {
val baseSettings0: Seq[Setting[_]]
final lazy val baseSettings = Seq(
organization := "andxor",
version := currentVersion,
publish / skip := true,
Compile / packageDoc / publishArtifact := false,
packageDoc / publishArtifact := false,
Compile / doc / sources := Seq(),
mimaPreviousArtifacts := Set(),
) ++ baseSettings0
final lazy val commonSettings = baseSettings ++ Seq(
libraryDependencies ++= Seq(
catsCore,
catsLaws,
monocleCore,
monocleLaws,
)
)
final lazy val publishSettings = Seq(
publish / skip := false,
gitPublishDir := file("/src/maven-repo"),
licenses += License.Apache2,
resolvers += "bondlink-maven-repo" at "https://raw.githubusercontent.com/mblink/maven-repo/main",
mimaPreviousArtifacts := Set(
"andxor" %% name.value % "0.14.0",
"andxor" %% name.value % "0.14.1",
),
)
final lazy val testSettings = Seq(libraryDependencies += scalacheck % "test")
final lazy val docsSettings = Seq(
scalacOptions -= "-Wnonunit-statement",
)
def generateBase = Project("generate", file("generate"))
.settings(commonSettings)
.settings(
name := "andxor-generate",
libraryDependencies += scalariform,
gitRelease := {}
)
def coreBase = Project("core", file("core"))
.settings(commonSettings)
.settings(publishSettings)
.settings(testSettings)
.settings(name := "andxor-core")
def scalacheckBase = Project("scalacheck", file("scalacheck"))
.settings(commonSettings)
.settings(publishSettings)
.settings(
name := "andxor-scalacheck",
libraryDependencies += scalacheck
)
def testsBase = Project("tests", file("tests"))
.settings(commonSettings)
.settings(
name := "andxor-tests",
gitRelease := {},
)
}
}