make ClasspathOptions configurable

This commit is contained in:
Mark Harrah 2011-03-08 17:50:19 -05:00
parent 201faacce8
commit 37f793be6e
4 changed files with 15 additions and 8 deletions

View File

@ -0,0 +1,11 @@
/* sbt -- Simple Build Tool
* Copyright 2009, 2010 Mark Harrah
*/
package sbt
final case class ClasspathOptions(autoBoot: Boolean, compiler: Boolean, extra: Boolean)
object ClasspathOptions
{
def manual = ClasspathOptions(false, false, false)
def auto = ClasspathOptions(true, true, true)
}

View File

@ -12,7 +12,7 @@ package compiler
* order to add these jars to the boot classpath. The 'scala.home' property must be unset because Scala
* puts jars in that directory on the bootclasspath. Because we use multiple Scala versions,
* this would lead to compiling against the wrong library jar.*/
class CompilerArguments(scalaInstance: ScalaInstance, cp: ClasspathOptions) extends NotNull
final class CompilerArguments(scalaInstance: ScalaInstance, cp: ClasspathOptions)
{
def apply(sources: Seq[File], classpath: Seq[File], outputDirectory: File, options: Seq[String]): Seq[String] =
{
@ -41,12 +41,6 @@ class CompilerArguments(scalaInstance: ScalaInstance, cp: ClasspathOptions) exte
def bootClasspathOption = if(cp.autoBoot) Seq("-bootclasspath", createBootClasspath) else Nil
def bootClasspath = if(cp.autoBoot) sbt.IO.pathSplit(createBootClasspath).map(new File(_)).toSeq else Nil
}
class ClasspathOptions(val autoBoot: Boolean, val compiler: Boolean, val extra: Boolean) extends NotNull
object ClasspathOptions
{
def manual = new ClasspathOptions(false, false, false)
def auto = new ClasspathOptions(true, true, true)
}
object CompilerArguments
{
def abs(files: Seq[File]): Seq[String] = files.map(_.getAbsolutePath)

View File

@ -106,7 +106,8 @@ object Defaults
)
def compileBase = Seq(
compilers <<= (scalaInstance, appConfiguration, streams) map { (si, app, s) => Compiler.compilers(si)(app, s.log) },
classpathOptions in GlobalScope :== ClasspathOptions.auto,
compilers <<= (scalaInstance, appConfiguration, streams, classpathOptions) map { (si, app, s, co) => Compiler.compilers(si, co)(app, s.log) },
javacOptions in GlobalScope :== Nil,
scalacOptions in GlobalScope :== Nil,
scalaInstance <<= (appConfiguration, scalaVersion){ (app, version) => ScalaInstance(version, app.provider.scalaProvider.launcher) },

View File

@ -68,6 +68,7 @@ object Keys
val compileInputs = TaskKey[Compiler.Inputs]("compile-inputs")
val scalaInstance = SettingKey[ScalaInstance]("scala-instance")
val scalaVersion = SettingKey[String]("scala-version")
val classpathOptions = SettingKey[ClasspathOptions]("classpath-options")
val webappDir = SettingKey[File]("webapp-dir")