gs-std/build.sbt
Pat Garrity 575874727d
All checks were successful
/ Build and Release Library (push) Successful in 2m20s
(minor) prepare-publish (#4)
Reviewed-on: #4
2026-05-29 02:34:23 +00:00

82 lines
2 KiB
Scala

val scala3: String = "3.8.3"
ThisBuild / scalaVersion := scala3
ThisBuild / versionScheme := Some("semver-spec")
ThisBuild / gsProjectName := "gs-std"
ThisBuild / licenses := Seq(
"MIT" -> url(
"https://codeberg.org/gs_pfm/gs-std/src/branch/main/LICENSE"
)
)
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.13.0"
val Effect: ModuleID = "org.typelevel" %% "cats-effect" % "3.7.0"
}
val Fs2 = new {
val Core: ModuleID = "co.fs2" %% "fs2-core" % "3.13.0"
val IO: ModuleID = "co.fs2" %% "fs2-io" % "3.13.0"
}
val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.3.0" % Test
}
lazy val testSettings = Seq(
libraryDependencies ++= Seq(
Deps.MUnit
)
)
lazy val `gs-std` = project
.in(file("."))
.aggregate(core, io, effect)
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-v${semVerMajor.value}")
lazy val core = project
.in(file("modules/core"))
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-core-v${semVerMajor.value}")
lazy val io = project
.in(file("modules/io"))
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-io-v${semVerMajor.value}")
.settings(
libraryDependencies ++= Seq(
Deps.Cats.Core,
Deps.Cats.Effect,
Deps.Fs2.Core,
Deps.Fs2.IO
)
)
lazy val effect = project
.in(file("modules/effect"))
.dependsOn(core)
.dependsOn(io % "test->compile")
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-effect-v${semVerMajor.value}")
.settings(
libraryDependencies ++= Seq(Deps.Cats.Core, Deps.Cats.Effect, Deps.Fs2.Core)
)