86 lines
2.2 KiB
Scala
86 lines
2.2 KiB
Scala
val scala3: String = "3.8.3"
|
|
|
|
ThisBuild / scalaVersion := scala3
|
|
ThisBuild / versionScheme := Some("semver-spec")
|
|
ThisBuild / gsProjectName := "gs-graph"
|
|
|
|
ThisBuild / externalResolvers := Seq(
|
|
"Garrity Software Mirror" at "https://maven.garrity.co/releases",
|
|
"Garrity Software Releases" at "https://maven.garrity.co/gs"
|
|
)
|
|
|
|
ThisBuild / licenses := Seq(
|
|
"MIT" -> url("https://git.garrity.co/garrity-software/gs-graph/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 Fs2 = new {
|
|
val Core: ModuleID = "co.fs2" %% "fs2-core" % "3.13.0"
|
|
}
|
|
|
|
val Gs = new {
|
|
val Std = new {
|
|
private val Version: String = "0.1.3"
|
|
|
|
val Core: ModuleID = "gs" %% "gs-std-core-v0" % Version
|
|
}
|
|
|
|
val Datagen: ModuleID = "gs" %% "gs-datagen-core-v0" % "0.4.1"
|
|
}
|
|
|
|
val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.3.0"
|
|
}
|
|
|
|
lazy val testSettings = Seq(
|
|
libraryDependencies ++= Seq(
|
|
Deps.MUnit % Test,
|
|
Deps.Gs.Datagen % Test
|
|
)
|
|
)
|
|
|
|
lazy val `gs-graph` = project
|
|
.in(file("."))
|
|
.aggregate(core, cats, fs2)
|
|
.settings(noPublishSettings)
|
|
.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}")
|
|
.settings(libraryDependencies ++= Seq(Deps.Gs.Std.Core))
|
|
|
|
lazy val cats = project
|
|
.in(file("modules/cats"))
|
|
.dependsOn(core)
|
|
.settings(sharedSettings)
|
|
.settings(testSettings)
|
|
.settings(name := s"${gsProjectName.value}-cats-v${semVerMajor.value}")
|
|
.settings(libraryDependencies ++= Seq(Deps.Cats.Core))
|
|
|
|
lazy val fs2 = project
|
|
.in(file("modules/fs2"))
|
|
.dependsOn(core)
|
|
.settings(sharedSettings)
|
|
.settings(testSettings)
|
|
.settings(name := s"${gsProjectName.value}-fs2-v${semVerMajor.value}")
|
|
.settings(libraryDependencies ++= Seq(Deps.Fs2.Core))
|