smolban/build.sbt
Pat Garrity 284c1e06b8
All checks were successful
/ Build and Release Application (push) Successful in 1m50s
(patch) Build out model (#2)
Creating a basic model for smolban

Reviewed-on: #2
2024-07-03 02:30:35 +00:00

98 lines
2.5 KiB
Scala

val scala3: String = "3.4.2"
ThisBuild / scalaVersion := scala3
ThisBuild / gsProjectName := "smolban"
ThisBuild / externalResolvers := Seq(
"Garrity Software Mirror" at "https://maven.garrity.co/releases",
"Garrity Software Releases" at "https://maven.garrity.co/gs"
)
lazy val sharedSettings = Seq(
scalaVersion := scala3,
version := calVer.value,
publish / skip := true,
publishLocal / skip := true,
publishArtifact := false
)
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 Doobie = new {
val Core: ModuleID = "org.tpolecat" %% "doobie-core" % "1.0.0-M5"
}
val Http4s = new {
val Core: ModuleID = "org.http4s" %% "http4s-core" % "1.0.0-M41"
val Dsl: ModuleID = "org.http4s" %% "http4s-dsl" % "1.0.0-M41"
val EmberServer: ModuleID =
"org.http4s" %% "http4s-ember-server" % "1.0.0-M41"
}
val Gs = new {
val Uuid: ModuleID = "gs" %% "gs-uuid-v0" % "0.2.4"
val Slug: ModuleID = "gs" %% "gs-slug-v0" % "0.1.3"
val Config: ModuleID = "gs" %% "gs-config-v0" % "0.1.1"
val Datagen: ModuleID = "gs" %% "gs-datagen-core-v0" % "0.1.1"
}
val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.0.0-RC1"
}
lazy val testSettings = Seq(
libraryDependencies ++= Seq(
Deps.MUnit % Test,
Deps.Gs.Datagen % Test
)
)
lazy val smolban = project
.in(file("."))
.aggregate(model, db, api)
.settings(sharedSettings)
.settings(name := s"${gsProjectName.value}")
lazy val model = project
.in(file("modules/model"))
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-model")
.settings(
libraryDependencies ++= Seq(
Deps.Gs.Uuid,
Deps.Gs.Slug,
Deps.Cats.Core
)
)
lazy val db = project
.in(file("modules/db"))
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-db")
.settings(
libraryDependencies ++= Seq(
Deps.Doobie.Core
)
)
lazy val api = project
.in(file("modules/api"))
.settings(sharedSettings)
.settings(testSettings)
.settings(name := s"${gsProjectName.value}-api")
.settings(
libraryDependencies ++= Seq(
Deps.Http4s.Core,
Deps.Http4s.Dsl,
Deps.Http4s.EmberServer
)
)