gs-crypto/build.sbt
Pat Garrity 3e1a2467ae
All checks were successful
/ Build and Release Library (push) Successful in 2m42s
(minor) eddsa
Reviewed-on: #1
2026-03-28 03:07:12 +00:00

116 lines
2.7 KiB
Scala

val scala3: String = "3.8.2"
ThisBuild / scalaVersion := scala3
ThisBuild / versionScheme := Some("semver-spec")
ThisBuild / gsProjectName := "gs-crypto"
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-crypto/src/branch/main/LICENSE"
)
)
// Note: Scala 3 code coverage is busted :(
val sharedSettings = Seq(
scalaVersion := scala3,
version := semVerSelected.value,
coverageFailOnMinimum := true
/* coverageMinimumStmtTotal := 100, coverageMinimumBranchTotal := 100 */
)
val noPublishSettings = Seq(
publish := {}
)
val Deps = new {
val Cats = new {
val Effect: ModuleID = "org.typelevel" %% "cats-effect" % "3.6.3"
}
val Gs = new {
val Datagen: ModuleID = "gs" %% "gs-datagen-core-v0" % "0.4.1"
}
val BouncyCastle = new {
val Provider: ModuleID = "org.bouncycastle" % "bcprov-jdk18on" % "1.83"
val PKIX: ModuleID = "org.bouncycastle" % "bcpkix-jdk18on" % "1.83"
}
val MUnit: ModuleID = "org.scalameta" %% "munit" % "1.2.2"
}
lazy val testSettings = Seq(
libraryDependencies ++= Seq(
Deps.MUnit % Test,
Deps.Gs.Datagen % Test
)
)
lazy val `gs-crypto` = project
.in(file("."))
.aggregate(core, argon2, rsa, eddsa)
.settings(noPublishSettings)
.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.Cats.Effect,
Deps.BouncyCastle.PKIX
)
)
lazy val argon2 = project
.in(file("modules/argon2"))
.dependsOn(core)
.settings(sharedSettings)
.settings(testSettings)
.settings(
name := s"${gsProjectName.value}-argon2-v${semVerMajor.value}"
)
.settings(
libraryDependencies ++= Seq(
Deps.Cats.Effect,
Deps.BouncyCastle.Provider
)
)
lazy val rsa = project
.in(file("modules/rsa"))
.dependsOn(core)
.settings(sharedSettings)
.settings(testSettings)
.settings(
name := s"${gsProjectName.value}-rsa-v${semVerMajor.value}"
)
.settings(
libraryDependencies ++= Seq(
Deps.Cats.Effect
)
)
lazy val eddsa = project
.in(file("modules/eddsa"))
.dependsOn(core)
.settings(sharedSettings)
.settings(testSettings)
.settings(
name := s"${gsProjectName.value}-eddsa-v${semVerMajor.value}"
)
.settings(
libraryDependencies ++= Seq(
Deps.Cats.Effect,
Deps.BouncyCastle.Provider
)
)