From b8bf2595006626da69e6f819d835cd37e5880177 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Sat, 16 Jul 2011 12:31:15 -0400 Subject: [PATCH] support starr as a scala home --- util/classpath/ScalaInstance.scala | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/util/classpath/ScalaInstance.scala b/util/classpath/ScalaInstance.scala index 81f96dd09..987c03a96 100644 --- a/util/classpath/ScalaInstance.scala +++ b/util/classpath/ScalaInstance.scala @@ -29,9 +29,9 @@ object ScalaInstance new ScalaInstance(version, provider.loader, provider.libraryJar, provider.compilerJar, (provider.jars.toSet - provider.libraryJar - provider.compilerJar).toSeq) def apply(scalaHome: File, launcher: xsbti.Launcher): ScalaInstance = - apply(libraryJar(scalaHome), compilerJar(scalaHome), launcher, jlineJar(scalaHome)) + apply(libraryJar(scalaHome), compilerJar(scalaHome), launcher, extraJars(scalaHome): _*) def apply(version: String, scalaHome: File, launcher: xsbti.Launcher): ScalaInstance = - apply(version, libraryJar(scalaHome), compilerJar(scalaHome), launcher, jlineJar(scalaHome)) + apply(version, libraryJar(scalaHome), compilerJar(scalaHome), launcher, extraJars(scalaHome) : _*) def apply(libraryJar: File, compilerJar: File, launcher: xsbti.Launcher, extraJars: File*): ScalaInstance = { val loader = scalaLoader(launcher, libraryJar :: compilerJar :: extraJars.toList) @@ -41,10 +41,18 @@ object ScalaInstance def apply(version: String, libraryJar: File, compilerJar: File, launcher: xsbti.Launcher, extraJars: File*): ScalaInstance = new ScalaInstance(version, scalaLoader(launcher, libraryJar :: compilerJar :: extraJars.toList), libraryJar, compilerJar, extraJars) + def extraJars(scalaHome: File): Seq[File] = + optScalaJar(scalaHome, "jline.jar") ++ optScalaJar(scalaHome, "fjbg.jar") + private def compilerJar(scalaHome: File) = scalaJar(scalaHome, "scala-compiler.jar") private def libraryJar(scalaHome: File) = scalaJar(scalaHome, "scala-library.jar") - private def jlineJar(scalaHome: File) = scalaJar(scalaHome, "jline.jar") + def scalaJar(scalaHome: File, name: String) = new File(scalaHome, "lib" + File.separator + name) + def optScalaJar(scalaHome: File, name: String): List[File] = + { + val jar = scalaJar(scalaHome, name) + if(jar.isFile) jar :: Nil else Nil + } /** Gets the version of Scala in the compiler.properties file from the loader.*/ private def actualVersion(scalaLoader: ClassLoader)(label: String) =