sbt/project/Dependencies.scala

147 lines
6.7 KiB
Scala
Raw Normal View History

2014-12-18 13:57:05 +01:00
import sbt._
import Keys._
import sbt.contraband.ContrabandPlugin.autoImport._
2014-12-18 13:57:05 +01:00
object Dependencies {
// WARNING: Please Scala update versions in PluginCross.scala too
2019-09-11 22:45:43 +02:00
val scala212 = "2.12.10"
2018-10-05 19:32:40 +02:00
lazy val checkPluginCross = settingKey[Unit]("Make sure scalaVersion match up")
val baseScalaVersion = scala212
2019-05-13 19:59:58 +02:00
def nightlyVersion: Option[String] = sys.props.get("sbt.build.version")
2014-12-18 23:40:20 +01:00
2015-09-14 09:27:22 +02:00
// sbt modules
2019-09-20 00:10:47 +02:00
private val ioVersion = nightlyVersion.getOrElse("1.3.1")
2019-10-14 06:26:34 +02:00
private val utilVersion = nightlyVersion.getOrElse("1.3.2")
private val lmVersion =
sys.props.get("sbt.build.lm.version") match {
case Some(version) => version
2019-09-04 05:51:13 +02:00
case _ => nightlyVersion.getOrElse("1.3.0")
}
2019-10-14 06:26:34 +02:00
val zincVersion = nightlyVersion.getOrElse("1.3.1")
private val sbtIO = "org.scala-sbt" %% "io" % ioVersion
private val utilPosition = "org.scala-sbt" %% "util-position" % utilVersion
private val utilLogging = "org.scala-sbt" %% "util-logging" % utilVersion
private val utilCache = "org.scala-sbt" %% "util-cache" % utilVersion
private val utilControl = "org.scala-sbt" %% "util-control" % utilVersion
private val utilRelation = "org.scala-sbt" %% "util-relation" % utilVersion
private val utilTracking = "org.scala-sbt" %% "util-tracking" % utilVersion
private val utilScripted = "org.scala-sbt" %% "util-scripted" % utilVersion
2017-07-16 00:09:40 +02:00
private val libraryManagementCore = "org.scala-sbt" %% "librarymanagement-core" % lmVersion
2019-04-28 23:27:10 +02:00
private val libraryManagementIvy = "org.scala-sbt" %% "librarymanagement-ivy" % lmVersion
2016-11-23 16:17:34 +01:00
2019-08-28 05:24:11 +02:00
val launcherVersion = "1.1.3"
2018-04-07 00:36:10 +02:00
val launcherInterface = "org.scala-sbt" % "launcher-interface" % launcherVersion
val rawLauncher = "org.scala-sbt" % "launcher" % launcherVersion
val testInterface = "org.scala-sbt" % "test-interface" % "1.0"
2018-01-30 06:43:30 +01:00
val ipcSocket = "org.scala-sbt.ipcsocket" % "ipcsocket" % "1.0.0"
2016-11-23 16:17:34 +01:00
private val compilerInterface = "org.scala-sbt" % "compiler-interface" % zincVersion
private val compilerClasspath = "org.scala-sbt" %% "zinc-classpath" % zincVersion
private val compilerApiInfo = "org.scala-sbt" %% "zinc-apiinfo" % zincVersion
private val compilerBridge = "org.scala-sbt" %% "compiler-bridge" % zincVersion
private val zinc = "org.scala-sbt" %% "zinc" % zincVersion
private val zincCompile = "org.scala-sbt" %% "zinc-compile" % zincVersion
2019-04-18 09:14:04 +02:00
private val zincCompileCore = "org.scala-sbt" %% "zinc-compile-core" % zincVersion
def getSbtModulePath(key: String, name: String) = {
val localProps = new java.util.Properties()
IO.load(localProps, file("project/local.properties"))
val path = Option(localProps getProperty key) orElse (sys.props get key)
path foreach (f => println(s"Using $name from $f"))
path
}
lazy val sbtIoPath = getSbtModulePath("sbtio.path", "sbt/io")
lazy val sbtUtilPath = getSbtModulePath("sbtutil.path", "sbt/util")
lazy val sbtLmPath = getSbtModulePath("sbtlm.path", "sbt/lm")
lazy val sbtZincPath = getSbtModulePath("sbtzinc.path", "sbt/zinc")
2019-04-18 09:14:04 +02:00
def addSbtModule(
p: Project,
path: Option[String],
projectName: String,
moduleId: ModuleID,
c: Option[Configuration] = None
2019-05-13 19:59:58 +02:00
) = {
2019-04-18 09:14:04 +02:00
val m = moduleId.withConfigurations(c.map(_.name))
path match {
2019-05-13 19:59:58 +02:00
case Some(f) =>
p dependsOn ClasspathDependency(ProjectRef(file(f), projectName), c.map(_.name))
case None => p settings (libraryDependencies += m, dependencyOverrides += m)
}
2019-04-18 09:14:04 +02:00
}
def addSbtIO(p: Project): Project = addSbtModule(p, sbtIoPath, "io", sbtIO)
def addSbtUtilPosition(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilPosition", utilPosition)
2017-04-21 09:14:31 +02:00
def addSbtUtilLogging(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilLogging", utilLogging)
def addSbtUtilCache(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilCache", utilCache)
def addSbtUtilControl(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilControl", utilControl)
2017-04-21 09:14:31 +02:00
def addSbtUtilRelation(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilRelation", utilRelation)
def addSbtUtilTracking(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilTracking", utilTracking)
def addSbtUtilScripted(p: Project): Project =
addSbtModule(p, sbtUtilPath, "utilScripted", utilScripted)
def addSbtLmCore(p: Project): Project =
addSbtModule(p, sbtLmPath, "lmCore", libraryManagementCore)
2019-10-16 20:27:32 +02:00
def addSbtLmIvy(p: Project): Project =
addSbtModule(p, sbtLmPath, "lmIvy", libraryManagementIvy)
2019-04-18 09:14:04 +02:00
def addSbtLmIvyTest(p: Project): Project =
addSbtModule(p, sbtLmPath, "lmIvy", libraryManagementIvy, Some(Test))
def addSbtCompilerInterface(p: Project): Project =
addSbtModule(p, sbtZincPath, "compilerInterface212", compilerInterface)
def addSbtCompilerClasspath(p: Project): Project =
addSbtModule(p, sbtZincPath, "zincClasspath212", compilerClasspath)
2017-04-21 09:14:31 +02:00
def addSbtCompilerApiInfo(p: Project): Project =
addSbtModule(p, sbtZincPath, "zincApiInfo212", compilerApiInfo)
2017-04-21 09:14:31 +02:00
def addSbtCompilerBridge(p: Project): Project =
addSbtModule(p, sbtZincPath, "compilerBridge212", compilerBridge)
def addSbtZinc(p: Project): Project = addSbtModule(p, sbtZincPath, "zinc", zinc)
2017-04-21 09:14:31 +02:00
def addSbtZincCompile(p: Project): Project =
addSbtModule(p, sbtZincPath, "zincCompile", zincCompile)
2019-04-18 09:14:04 +02:00
def addSbtZincCompileCore(p: Project): Project =
addSbtModule(p, sbtZincPath, "zincCompileCore", zincCompileCore)
2016-11-23 16:17:34 +01:00
val lmCoursierVersion = "2.0.0-RC5-2"
val lmCoursierShaded = "io.get-coursier" %% "lm-coursier-shaded" % lmCoursierVersion
val sjsonNewScalaJson = Def.setting {
"com.eed3si9n" %% "sjson-new-scalajson" % contrabandSjsonNewVersion.value
}
val jline = "jline" % "jline" % "2.14.6"
2019-08-19 08:34:07 +02:00
val scalatest = "org.scalatest" %% "scalatest" % "3.0.8"
val scalacheck = "org.scalacheck" %% "scalacheck" % "1.14.0"
2017-11-26 05:59:50 +01:00
val specs2 = "org.specs2" %% "specs2-junit" % "4.0.1"
val junit = "junit" % "junit" % "4.11"
val templateResolverApi = "org.scala-sbt" % "template-resolver" % "0.1"
2016-11-23 16:17:34 +01:00
private def scala211Module(name: String, moduleVersion: String) = Def setting (
("org.scala-lang.modules" %% name % moduleVersion) :: Nil
2016-11-23 16:17:34 +01:00
)
2019-05-13 19:59:58 +02:00
val scalaXml = scala211Module("scala-xml", "1.2.0")
val scalaParsers = scala211Module("scala-parser-combinators", "1.1.2")
2019-03-23 08:00:08 +01:00
def log4jVersion = "2.11.2"
val log4jApi = "org.apache.logging.log4j" % "log4j-api" % log4jVersion
val log4jCore = "org.apache.logging.log4j" % "log4j-core" % log4jVersion
val log4jSlf4jImpl = "org.apache.logging.log4j" % "log4j-slf4j-impl" % log4jVersion
// specify all of log4j modules to prevent misalignment
val log4jDependencies = Vector(log4jApi, log4jCore, log4jSlf4jImpl)
val scalaCacheCaffeine = "com.github.cb372" %% "scalacache-caffeine" % "0.20.0"
val hedgehog = "hedgehog" %% "hedgehog-sbt" % "0.1.0"
2014-12-18 13:57:05 +01:00
}