mirror of https://github.com/sbt/sbt.git
Merge pull request #6481 from adpi2/backport-mk-scala-instance
Backport #6480: Expose makeScalaInstance publicly
This commit is contained in:
commit
ccca321a0f
|
|
@ -35,7 +35,7 @@ import sbt.Scope.{ GlobalScope, ThisScope, fillTaskAxis }
|
||||||
import sbt.coursierint._
|
import sbt.coursierint._
|
||||||
import sbt.internal.CommandStrings.ExportStream
|
import sbt.internal.CommandStrings.ExportStream
|
||||||
import sbt.internal._
|
import sbt.internal._
|
||||||
import sbt.internal.classpath.{ AlternativeZincUtil, ClassLoaderCache }
|
import sbt.internal.classpath.AlternativeZincUtil
|
||||||
import sbt.internal.inc.JavaInterfaceUtil._
|
import sbt.internal.inc.JavaInterfaceUtil._
|
||||||
import sbt.internal.inc.classpath.{ ClasspathFilter, ClasspathUtil }
|
import sbt.internal.inc.classpath.{ ClasspathFilter, ClasspathUtil }
|
||||||
import sbt.internal.inc.{ CompileOutput, MappedFileConverter, Stamps, ZincLmUtil, ZincUtil }
|
import sbt.internal.inc.{ CompileOutput, MappedFileConverter, Stamps, ZincLmUtil, ZincUtil }
|
||||||
|
|
@ -1077,13 +1077,12 @@ object Defaults extends BuildCommon {
|
||||||
val libraryJars = allJars.filter(_.getName == "scala-library.jar")
|
val libraryJars = allJars.filter(_.getName == "scala-library.jar")
|
||||||
allJars.filter(_.getName == "scala-compiler.jar") match {
|
allJars.filter(_.getName == "scala-compiler.jar") match {
|
||||||
case Array(compilerJar) if libraryJars.nonEmpty =>
|
case Array(compilerJar) if libraryJars.nonEmpty =>
|
||||||
val cache = state.value.extendedClassLoaderCache
|
makeScalaInstance(
|
||||||
mkScalaInstance(
|
|
||||||
version,
|
version,
|
||||||
libraryJars,
|
libraryJars,
|
||||||
allJars,
|
allJars,
|
||||||
Seq.empty,
|
Seq.empty,
|
||||||
cache,
|
state.value,
|
||||||
scalaInstanceTopLoader.value
|
scalaInstanceTopLoader.value
|
||||||
)
|
)
|
||||||
case _ => ScalaInstance(version, scalaProvider)
|
case _ => ScalaInstance(version, scalaProvider)
|
||||||
|
|
@ -1135,21 +1134,21 @@ object Defaults extends BuildCommon {
|
||||||
.flatMap(_.artifacts.map(_._2))
|
.flatMap(_.artifacts.map(_._2))
|
||||||
val libraryJars = ScalaArtifacts.libraryIds(sv).map(file)
|
val libraryJars = ScalaArtifacts.libraryIds(sv).map(file)
|
||||||
|
|
||||||
mkScalaInstance(
|
makeScalaInstance(
|
||||||
sv,
|
sv,
|
||||||
libraryJars,
|
libraryJars,
|
||||||
allCompilerJars,
|
allCompilerJars,
|
||||||
allDocJars,
|
allDocJars,
|
||||||
state.value.extendedClassLoaderCache,
|
state.value,
|
||||||
scalaInstanceTopLoader.value,
|
scalaInstanceTopLoader.value,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
private[this] def mkScalaInstance(
|
private def makeScalaInstance(
|
||||||
version: String,
|
version: String,
|
||||||
libraryJars: Array[File],
|
libraryJars: Array[File],
|
||||||
allCompilerJars: Seq[File],
|
allCompilerJars: Seq[File],
|
||||||
allDocJars: Seq[File],
|
allDocJars: Seq[File],
|
||||||
classLoaderCache: ClassLoaderCache,
|
state: State,
|
||||||
topLoader: ClassLoader,
|
topLoader: ClassLoader,
|
||||||
): ScalaInstance = {
|
): ScalaInstance = {
|
||||||
// Scala 2.10 shades jline in the console so we need to make sure that it loads a compatible
|
// Scala 2.10 shades jline in the console so we need to make sure that it loads a compatible
|
||||||
|
|
@ -1162,6 +1161,7 @@ object Defaults extends BuildCommon {
|
||||||
}
|
}
|
||||||
else topLoader
|
else topLoader
|
||||||
|
|
||||||
|
val classLoaderCache = state.extendedClassLoaderCache
|
||||||
val compilerJars = allCompilerJars.filterNot(libraryJars.contains).distinct.toArray
|
val compilerJars = allCompilerJars.filterNot(libraryJars.contains).distinct.toArray
|
||||||
val docJars = allDocJars
|
val docJars = allDocJars
|
||||||
.filterNot(jar => libraryJars.contains(jar) || compilerJars.contains(jar))
|
.filterNot(jar => libraryJars.contains(jar) || compilerJars.contains(jar))
|
||||||
|
|
@ -1196,12 +1196,12 @@ object Defaults extends BuildCommon {
|
||||||
case a: AutoCloseable => a.close()
|
case a: AutoCloseable => a.close()
|
||||||
case _ =>
|
case _ =>
|
||||||
}
|
}
|
||||||
mkScalaInstance(
|
makeScalaInstance(
|
||||||
dummy.version,
|
dummy.version,
|
||||||
dummy.libraryJars,
|
dummy.libraryJars,
|
||||||
dummy.compilerJars,
|
dummy.compilerJars,
|
||||||
dummy.allJars,
|
dummy.allJars,
|
||||||
state.value.extendedClassLoaderCache,
|
state.value,
|
||||||
scalaInstanceTopLoader.value,
|
scalaInstanceTopLoader.value,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue