import Dependencies._ def scala211 = "2.11.12" def scala212 = "2.12.8" def scala213 = "2.13" name := "stasis" inThisBuild( List( organization := "io.stasis", homepage := Some(url("https://github.com/stasis/stasis")), licenses := List( "Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0"), "ASM" -> url("https://asm.ow2.io/license.html") ), developers := List( Developer( "gburd", "Gregory Burd", "greg@burd.me", url("https://greg.burd.me") ) ), scalaVersion := scala212, crossScalaVersions := List(scala213, scala212, scala211), resolvers += Resolver.sonatypeRepo("releases"), libraryDependencies ++= List( scalatest.value % Test, scalacheck % Test, scalametaTestkit % Test ), scalacOptions ++= { CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, 11)) => Seq("-target:jvm-1.8") case Some((2, 12)) => Seq("-target:jvm-1.8") case Some((2, 13)) => Seq("-target:jvm-1.8") case _ => Seq.empty } } ) ) skip in publish := true commands += Command.command("ci-test") { s => val scalaVersion = sys.env.get("TEST") match { case Some("2.11") => scala211 case Some("2.12") => scala212 case Some("2.13") => scala213 case _ => scala212 } val docsTest = if (scalaVersion == scala213) "docs/run" else "version" s"++$scalaVersion" :: s"tests/test" :: s"coreJS/test" :: docsTest :: s } lazy val core = project .in(file("stasis-core")) .settings( moduleName := "stasis-core", description := "Implementation of Stasis", buildInfoSettings, buildInfoPackage := "io.stasis", buildInfoObject := "BuildInfo", libraryDependencies ++= List( scalatest.value % Test, scalametaTestkit % Test ) ) .enablePlugins(BuildInfoPlugin) lazy val persist = project .in(file("stasis-persist")) .settings( moduleName := "stasis-persist", assemblyJarName.in(assembly) := "stasis-persist.jar", ) .dependsOn(core) lazy val rep = project .in(file("stasis-rep")) .settings( moduleName := "stasis-rep", assemblyJarName.in(assembly) := "stasis-rep.jar" ) .dependsOn(core) val V = "\\d+\\.\\d+\\.\\d+" val ReleaseCandidate = s"($V-RC\\d+).*".r val Milestone = s"($V-M\\d+).*".r lazy val stableVersion = Def.setting { version.in(ThisBuild).value.replaceAll("\\+.*", "") } lazy val buildInfoSettings: Seq[Def.Setting[_]] = Seq( buildInfoKeys := Seq[BuildInfoKey]( name, version, "scalameta" -> scalametaV, "nightly" -> version.value, "stable" -> stableVersion.value, "scala" -> scalaVersion.value, "scala211" -> scala211, "scala212" -> scala212, "scala213" -> scala213, "coursier" -> coursier, "commit" -> sys.process.Process("git rev-parse HEAD").lineStream_!.head, "timestamp" -> System.currentTimeMillis().toString, scalaVersion, sbtVersion ), buildInfoPackage := "io.stasis", buildInfoObject := "Versions" )