ThisBuild / scalaVersion := "3.8.4" ThisBuild / organizationName := "garrity software" ThisBuild / organization := "gs" ThisBuild / versionScheme := Some("semver-spec") externalResolvers := Seq( "Garrity Software Releases" at "https://maven.garrity.co/gs", "Garrity Software Maven Mirror" at "https://maven.garrity.co/releases" ) val ProjectName: String = "sbt-garrity-software" val Description: String = "SBT 2.0.0+ plugin for Garrity Software projects." val CurrentVersion: String = "0.8.0" def isRelease(): Boolean = !CurrentVersion.contains("SNAPSHOT") lazy val publishSettings = Seq( publishMavenStyle := true, Test / publishArtifact := false, pomIncludeRepository := Function.const(false), scmInfo := Some( ScmInfo( uri(s"https://git.garrity.co/garrity-software/$ProjectName"), s"git@git.garrity.co:garrity-software/$ProjectName.git" ) ), description := Description, licenses := List( "MIT" -> uri(s"https://git.garrity.co/garrity-software/$ProjectName/LICENSE") ), homepage := Some( uri(s"https://git.garrity.co/garrity-software/$ProjectName") ), publishTo := { val repo = "https://maven.garrity.co/" if (!isRelease()) Some("Garrity Software Maven" at repo + "snapshots") else Some("Garrity Software Maven" at repo + "gs") } ) lazy val root = Project(ProjectName, file(".")) .enablePlugins(SbtPlugin) .settings(publishSettings) .settings( name := ProjectName, version := CurrentVersion, pluginCrossBuild / sbtVersion := { "2.0.0" }, scalacOptions := Seq( "-encoding", "utf8", "-deprecation", "-feature", "-explain", "-unchecked", "-explain-types", "-language:strictEquality", "-Wunused:implicits", "-Wunused:explicits", "-Wunused:imports", "-Wunused:locals", "-Wunused:privates" ) )