117 lines
3.1 KiB
Text
117 lines
3.1 KiB
Text
|
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 := scala213,
|
||
|
crossScalaVersions := List(scala213, scala212, scala211),
|
||
|
resolvers += Resolver.sonatypeRepo("releases"),
|
||
|
libraryDependencies ++= List(
|
||
|
scalatest.value % Test,
|
||
|
scalacheck % Test,
|
||
|
scalametaTestkit % Test
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
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 _ => scala213
|
||
|
}
|
||
|
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 cli = project
|
||
|
.in(file("stasis-cli"))
|
||
|
.settings(
|
||
|
moduleName := "stasis-cli",
|
||
|
mainClass in assembly := Some("io.stasis.cli.Cli"),
|
||
|
assemblyJarName.in(assembly) := "stasis.jar",
|
||
|
libraryDependencies ++= Seq(
|
||
|
"com.googlecode.java-diff-utils" % "diffutils" % "1.3.0",
|
||
|
"com.martiansoftware" % "nailgun-server" % "0.9.1",
|
||
|
"com.github.scopt" %% "scopt" % "3.5.0",
|
||
|
// undeclared transitive dependency of coursier-small
|
||
|
"org.scala-lang.modules" %% "scala-xml" % "1.1.1"
|
||
|
),
|
||
|
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
|
||
|
}
|
||
|
}
|
||
|
)
|
||
|
.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,
|
||
|
"coursier" -> coursier,
|
||
|
"commit" -> sys.process.Process("git rev-parse HEAD").lineStream_!.head,
|
||
|
"timestamp" -> System.currentTimeMillis().toString,
|
||
|
scalaVersion,
|
||
|
sbtVersion
|
||
|
),
|
||
|
buildInfoPackage := "io.stasis",
|
||
|
buildInfoObject := "Versions"
|
||
|
)
|