mirror of https://github.com/sbt/sbt.git
23 lines
796 B
Scala
23 lines
796 B
Scala
/* sbt -- Simple Build Tool
|
|
* Copyright 2010 Jason Zaugg
|
|
*/
|
|
package xsbt
|
|
|
|
import scala.tools.nsc.{CompilerCommand, Settings}
|
|
|
|
object Command
|
|
{
|
|
/**
|
|
* Construct a CompilerCommand using reflection, to be compatible with Scalac before and after
|
|
* <a href="https://lampsvn.epfl.ch/trac/scala/changeset/21274">r21274</a>
|
|
*/
|
|
def apply(arguments: List[String], settings: Settings): CompilerCommand = {
|
|
def constr(params: Class[_]*) = classOf[CompilerCommand].getConstructor(params: _*)
|
|
try {
|
|
constr(classOf[List[_]], classOf[Settings]).newInstance(arguments, settings)
|
|
} catch {
|
|
case e: NoSuchMethodException =>
|
|
constr(classOf[List[_]], classOf[Settings], classOf[Function1[_, _]], classOf[Boolean]).newInstance(arguments, settings, error _, false.asInstanceOf[AnyRef])
|
|
}
|
|
}
|
|
} |