79 lines
2.1 KiB
Scala
79 lines
2.1 KiB
Scala
val scala3: String = "3.4.1"
|
|
|
|
ThisBuild / scalaVersion := scala3
|
|
ThisBuild / versionScheme := Some("semver-spec")
|
|
ThisBuild / gsProjectName := "gs-log"
|
|
|
|
ThisBuild / externalResolvers := Seq(
|
|
"Garrity Software Mirror" at "https://maven.garrity.co/releases",
|
|
"Garrity Software Releases" at "https://maven.garrity.co/gs"
|
|
)
|
|
|
|
val noPublishSettings = Seq(
|
|
publish := {}
|
|
)
|
|
|
|
val sharedSettings = Seq(
|
|
scalaVersion := scala3,
|
|
version := semVerSelected.value,
|
|
coverageFailOnMinimum := true
|
|
/* coverageMinimumStmtTotal := 100, coverageMinimumBranchTotal := 100 */
|
|
)
|
|
|
|
val Deps = new {
|
|
val Cats = new {
|
|
val Core: ModuleID = "org.typelevel" %% "cats-core" % "2.10.0"
|
|
val Effect: ModuleID = "org.typelevel" %% "cats-effect" % "3.5.4"
|
|
}
|
|
|
|
val Fs2 = new {
|
|
val Core: ModuleID = "co.fs2" %% "fs2-core" % "3.10.2"
|
|
}
|
|
|
|
val Gs = new {
|
|
val Uuid: ModuleID = "gs" %% "gs-uuid-v0" % "0.2.3"
|
|
val Datagen: ModuleID = "gs" %% "gs-datagen-core-v0" % "0.1.1"
|
|
}
|
|
|
|
val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.0.0-M12"
|
|
}
|
|
|
|
lazy val testSettings = Seq(
|
|
libraryDependencies ++= Seq(
|
|
Deps.MUnit % Test,
|
|
Deps.Gs.Datagen % Test
|
|
)
|
|
)
|
|
|
|
lazy val `gs-log` = project
|
|
.in(file("."))
|
|
.aggregate(data, api, engine)
|
|
.settings(noPublishSettings)
|
|
.settings(name := s"${gsProjectName.value}-v${semVerMajor.value}")
|
|
|
|
lazy val data = project
|
|
.in(file("modules/data"))
|
|
.settings(sharedSettings)
|
|
.settings(testSettings)
|
|
.settings(name := s"${gsProjectName.value}-data-v${semVerMajor.value}")
|
|
.settings(libraryDependencies ++= Seq(
|
|
Deps.Cats.Core
|
|
))
|
|
|
|
lazy val api = project
|
|
.in(file("modules/api"))
|
|
.dependsOn(data)
|
|
.settings(sharedSettings)
|
|
.settings(testSettings)
|
|
.settings(name := s"${gsProjectName.value}-api-v${semVerMajor.value}")
|
|
|
|
lazy val engine = project
|
|
.in(file("modules/engine"))
|
|
.dependsOn(data, api)
|
|
.settings(sharedSettings)
|
|
.settings(testSettings)
|
|
.settings(name := s"${gsProjectName.value}-engine-v${semVerMajor.value}")
|
|
.settings(libraryDependencies ++= Seq(
|
|
Deps.Cats.Effect,
|
|
Deps.Fs2.Core
|
|
))
|