diff --git a/build.sbt b/build.sbt index efddf20ee..5bce8da6e 100644 --- a/build.sbt +++ b/build.sbt @@ -426,7 +426,7 @@ lazy val utilScripted = (project in file("internal") / "util-scripted") .settings( utilCommonSettings, name := "Util Scripted", - libraryDependencies ++= scalaParsers.value, + libraryDependencies += scalaParsers, utilMimaSettings, ) .configure(addSbtIO) @@ -439,7 +439,8 @@ lazy val testingProj = (project in file("testing")) .settings( baseSettings, name := "Testing", - libraryDependencies ++= scalaXml.value ++ Seq( + libraryDependencies ++= Seq( + scalaXml, testInterface, launcherInterface, sjsonNewScalaJson.value @@ -862,19 +863,12 @@ lazy val mainProj = (project in file("main")) name := "Main", checkPluginCross := { val sv = scalaVersion.value - val xs = - IO.readLines(baseDirectory.value / "src" / "main" / "scala" / "sbt" / "PluginCross.scala") - if (xs exists { s => - s.contains(s""""$sv"""") - }) () - else sys.error("PluginCross.scala does not match up with the scalaVersion " + sv) - }, - libraryDependencies ++= { - scalaXml.value ++ - Seq(launcherInterface) ++ - log4jDependencies ++ - Seq(scalaCacheCaffeine, lmCoursierShaded) + val f = baseDirectory.value / "src" / "main" / "scala" / "sbt" / "PluginCross.scala" + if (!IO.readLines(f).exists(_.contains(s""""$sv""""))) + sys.error(s"PluginCross.scala does not match up with the scalaVersion $sv") }, + libraryDependencies ++= + (Seq(scalaXml, launcherInterface, scalaCacheCaffeine, lmCoursierShaded) ++ log4jModules), libraryDependencies ++= (scalaVersion.value match { case v if v.startsWith("2.12.") => List(compilerPlugin(silencerPlugin)) case _ => List() diff --git a/project/Dependencies.scala b/project/Dependencies.scala index d9e1e9379..02f9d0f44 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -6,17 +6,14 @@ object Dependencies { // WARNING: Please Scala update versions in PluginCross.scala too val scala212 = "2.12.10" val scala213 = "2.13.1" - lazy val checkPluginCross = settingKey[Unit]("Make sure scalaVersion match up") + val checkPluginCross = settingKey[Unit]("Make sure scalaVersion match up") val baseScalaVersion = scala212 - def nightlyVersion: Option[String] = sys.props.get("sbt.build.version") + def nightlyVersion = sys.props.get("sbt.build.version") // sbt modules private val ioVersion = nightlyVersion.getOrElse("1.4.0-M2") private val lmVersion = - sys.props.get("sbt.build.lm.version") match { - case Some(version) => version - case _ => nightlyVersion.getOrElse("1.3.0") - } + sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("1.3.0") val zincVersion = nightlyVersion.getOrElse("1.3.1") private val sbtIO = "org.scala-sbt" %% "io" % ioVersion @@ -38,67 +35,52 @@ object Dependencies { private val zincCompile = "org.scala-sbt" %% "zinc-compile" % zincVersion private val zincCompileCore = "org.scala-sbt" %% "zinc-compile-core" % zincVersion - def getSbtModulePath(key: String, name: String) = { + def getSbtModulePath(key: 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")) + val path = Option(localProps.getProperty(key)).orElse(sys.props.get(key)) + path.foreach(f => println(s"Using $key=$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") + lazy val sbtIoPath = getSbtModulePath("sbtio.path") + lazy val sbtUtilPath = getSbtModulePath("sbtutil.path") + lazy val sbtLmPath = getSbtModulePath("sbtlm.path") + lazy val sbtZincPath = getSbtModulePath("sbtzinc.path") def addSbtModule( - p: Project, path: Option[String], projectName: String, moduleId: ModuleID, c: Option[Configuration] = None - ) = { + ) = (p: Project) => { val m = moduleId.withConfigurations(c.map(_.name)) path match { case Some(f) => - p dependsOn ClasspathDependency(ProjectRef(file(f), projectName), c.map(_.name)) - case None => p settings (libraryDependencies += m, dependencyOverrides += m) + p.dependsOn(ClasspathDependency(ProjectRef(file(f), projectName), c.map(_.name))) + case None => p.settings(libraryDependencies += m, dependencyOverrides += m) } } - def addSbtIO(p: Project): Project = addSbtModule(p, sbtIoPath, "io", sbtIO) + def addSbtIO = addSbtModule(sbtIoPath, "io", sbtIO) - def addSbtLmCore(p: Project): Project = - addSbtModule(p, sbtLmPath, "lmCore", libraryManagementCore) - def addSbtLmIvy(p: Project): Project = - addSbtModule(p, sbtLmPath, "lmIvy", libraryManagementIvy) - def addSbtLmIvyTest(p: Project): Project = - addSbtModule(p, sbtLmPath, "lmIvy", libraryManagementIvy, Some(Test)) + def addSbtLmCore = addSbtModule(sbtLmPath, "lmCore", libraryManagementCore) + def addSbtLmIvy = addSbtModule(sbtLmPath, "lmIvy", libraryManagementIvy) + def addSbtLmIvyTest = addSbtModule(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) - def addSbtCompilerApiInfo(p: Project): Project = - addSbtModule(p, sbtZincPath, "zincApiInfo212", compilerApiInfo) - def addSbtCompilerBridge(p: Project): Project = - addSbtModule(p, sbtZincPath, "compilerBridge212", compilerBridge) - def addSbtZinc(p: Project): Project = addSbtModule(p, sbtZincPath, "zinc", zinc) - def addSbtZincCompile(p: Project): Project = - addSbtModule(p, sbtZincPath, "zincCompile", zincCompile) - def addSbtZincCompileCore(p: Project): Project = - addSbtModule(p, sbtZincPath, "zincCompileCore", zincCompileCore) + def addSbtCompilerInterface = addSbtModule(sbtZincPath, "compilerInterface212", compilerInterface) + def addSbtCompilerClasspath = addSbtModule(sbtZincPath, "zincClasspath212", compilerClasspath) + def addSbtCompilerApiInfo = addSbtModule(sbtZincPath, "zincApiInfo212", compilerApiInfo) + def addSbtCompilerBridge = addSbtModule(sbtZincPath, "compilerBridge212", compilerBridge) + def addSbtZinc = addSbtModule(sbtZincPath, "zinc", zinc) + def addSbtZincCompile = addSbtModule(sbtZincPath, "zincCompile", zincCompile) + def addSbtZincCompileCore = addSbtModule(sbtZincPath, "zincCompileCore", zincCompileCore) - val lmCoursierVersion = "2.0.0-RC5-3" - val lmCoursierShaded = "io.get-coursier" %% "lm-coursier-shaded" % lmCoursierVersion + val lmCoursierShaded = "io.get-coursier" %% "lm-coursier-shaded" % "2.0.0-RC5-3" - val sjsonNewScalaJson = Def.setting { - "com.eed3si9n" %% "sjson-new-scalajson" % contrabandSjsonNewVersion.value - } - - val sjsonNewMurmurhash = Def.setting { - "com.eed3si9n" %% "sjson-new-murmurhash" % contrabandSjsonNewVersion.value - } + def sjsonNew(n: String) = Def.setting("com.eed3si9n" %% n % contrabandSjsonNewVersion.value) + val sjsonNewScalaJson = sjsonNew("sjson-new-scalajson") + val sjsonNewMurmurhash = sjsonNew("sjson-new-murmurhash") val jline = "jline" % "jline" % "2.14.6" val scalatest = "org.scalatest" %% "scalatest" % "3.0.8" @@ -107,20 +89,16 @@ object Dependencies { val junit = "junit" % "junit" % "4.11" val templateResolverApi = "org.scala-sbt" % "template-resolver" % "0.1" - private def scala212Module(name: String, moduleVersion: String) = Def setting ( - ("org.scala-lang.modules" %% name % moduleVersion) :: Nil - ) + val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "1.2.0" + val scalaParsers = "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.2" + val scalaReflect = Def.setting("org.scala-lang" % "scala-reflect" % scalaVersion.value) - val scalaXml = scala212Module("scala-xml", "1.2.0") - val scalaParsers = scala212Module("scala-parser-combinators", "1.1.2") - val scalaReflect = Def.setting { "org.scala-lang" % "scala-reflect" % scalaVersion.value } - - 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) + def log4jModule = (n: String) => "org.apache.logging.log4j" % n % "2.11.2" + val log4jApi = log4jModule("log4j-api") + val log4jCore = log4jModule("log4j-core") + val log4jSlf4jImpl = log4jModule("log4j-slf4j-impl") + val log4jModules = Vector(log4jApi, log4jCore, log4jSlf4jImpl) val scalaCacheCaffeine = "com.github.cb372" %% "scalacache-caffeine" % "0.20.0"