From c86f64b451502dbb50e420db8f5a35e1129fc757 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 18 Apr 2017 13:28:12 -0400 Subject: [PATCH] support for packaging sbt 1 --- build.sbt | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index 58c8d6c5a..22eb6b40c 100644 --- a/build.sbt +++ b/build.sbt @@ -178,6 +178,7 @@ def downloadUrlForVersion(v: String) = (v split "[^\\d]" flatMap (i => catching( case Array(0, 11, 3, _*) => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.11.3-2/sbt-launch.jar" case Array(0, 11, x, _*) if x >= 3 => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/"+v+"/sbt-launch.jar" case Array(0, y, _*) if y >= 12 => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/"+v+"/sbt-launch.jar" + case Array(1, _, _*) if v contains ("-20") => "http://repo.scala-sbt.org/scalasbt/maven-snapshots/org/scala-sbt/sbt-launch/"+v+"/sbt-launch.jar" case Array(1, _, _*) => "http://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/"+v+"/sbt-launch.jar" case _ => "http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/"+v+"/sbt-launch.jar" } @@ -239,14 +240,22 @@ def bintrayRelease(repo: BintrayRepo, pkg: String, version: String, log: Logger) lazy val scala210 = "2.10.6" -lazy val scala212 = "2.12.1" +lazy val scala212 = "2.12.2" lazy val scala210Jline = "org.scala-lang" % "jline" % scala210 -lazy val jansi = "org.fusesource.jansi" % "jansi" % "1.4" +lazy val jansi = { + if (sbtVersionToRelease startsWith "1.") "org.fusesource.jansi" % "jansi" % "1.4" + else "org.fusesource.jansi" % "jansi" % "1.4" +} lazy val scala212Jline = "jline" % "jline" % "2.14.1" lazy val scala212Xml = "org.scala-lang.modules" % "scala-xml_2.12" % "1.0.6" lazy val scala212Compiler = "org.scala-lang" % "scala-compiler" % scala212 lazy val sbtActual = "org.scala-sbt" % "sbt" % sbtVersionToRelease +lazy val sbt013ExtraDeps = { + if (sbtVersionToRelease startsWith "0.13.") Seq(scala210Jline) + else Seq() +} + def downloadUrl(uri: URI, out: File): Unit = { import dispatch.classic._ @@ -262,11 +271,24 @@ lazy val dist = (project in file("dist")) .enablePlugins(ExportRepoPlugin) .settings( name := "dist", - scalaVersion := scala210, - libraryDependencies ++= Seq(sbtActual, scala210Jline, jansi, scala212Compiler, scala212Jline, scala212Xml), + scalaVersion := { + if (sbtVersionToRelease startsWith "0.13.") scala210 + else scala212 + }, + libraryDependencies ++= Seq(sbtActual, jansi, scala212Compiler, scala212Jline, scala212Xml) ++ sbt013ExtraDeps, exportRepo := { val old = exportRepo.value sbtVersionToRelease match { + case v if v.startsWith("1.0.") => + val zincBase = exportRepoDirectory.value / "org.scala-sbt" / "zinc_2.12" + val zincVersion = (zincBase * DirectoryFilter).get.head.getName + val utilBase = exportRepoDirectory.value / "org.scala-sbt" / "util-logging_2.12" + val utilVersion = (utilBase * DirectoryFilter).get.head.getName + val outbase = exportRepoDirectory.value / "org" / "scala-sbt" / "compiler-interface" / zincVersion + val uribase = s"https://oss.sonatype.org/content/repositories/public/org/scala-sbt/compiler-interface/$zincVersion/" + downloadUrl(uri(uribase + s"compiler-interface-${zincVersion}.jar"), outbase / s"compiler-interface-${zincVersion}.jar") + downloadUrl(uri(uribase + s"compiler-interface-${zincVersion}-sources.jar"), outbase / s"compiler-interface-${zincVersion}-sources.jar") + downloadUrl(uri(uribase + s"compiler-interface-${zincVersion}.pom"), outbase / s"compiler-interface-${zincVersion}.pom") case v if v.startsWith("0.13.") => val outbase = exportRepoDirectory.value / "org.scala-sbt" / "compiler-interface" / v val uribase = s"https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/$v/"