From fcafb7bed6af5ae92fb339a674e9b13391cff634 Mon Sep 17 00:00:00 2001 From: buraq Date: Tue, 21 Jun 2005 15:54:21 +0000 Subject: little additions to make independent from AntAd... little additions to make independent from AntAdaptor --- sources/scala/tools/scala4ant/NscAdaptor.scala | 106 +++++++++++++++++++------ sources/scala/tools/scala4ant/NscTask.scala | 4 +- 2 files changed, 85 insertions(+), 25 deletions(-) (limited to 'sources') diff --git a/sources/scala/tools/scala4ant/NscAdaptor.scala b/sources/scala/tools/scala4ant/NscAdaptor.scala index b70164ac89..46a8b3317a 100644 --- a/sources/scala/tools/scala4ant/NscAdaptor.scala +++ b/sources/scala/tools/scala4ant/NscAdaptor.scala @@ -1,6 +1,5 @@ //import scalac._; -import scala.tools.util.Reporter; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; @@ -24,32 +23,14 @@ package scala.tools.scala4ant { * $Id$ */ - class NscAdaptor extends AntAdaptor { + class NscAdaptor extends DefaultCompilerAdapter { - override def runCompiler( args:Array[String] ) = { + def runCompiler( args:Array[String] ) = { var ex:Throwable = _; //Console.println("runCompiler"); var result = true; try { - //var moreargs: List[String] = Nil; - - //if(verbose) - // moreargs = "-verbose" :: moreargs; - - val moreargs = this.attributes.asInstanceOf[NscTask].moreArgs(); - - for(val a <- moreargs) - Console.println("NscAdaptor adds argument '"+a+"'"); - - val nargs = new Array[String](moreargs.length + args.length); - //moreargs.copyToArray(nargs, 0); - System.arraycopy(moreargs, 0, nargs, 0, moreargs.length); - System.arraycopy(args, 0, nargs, moreargs.length, args.length); - - - - - scala.tools.nsc.Main.process( nargs ); + scala.tools.nsc.Main.process( args ); } catch { case e:Throwable => ex = e; @@ -65,7 +46,86 @@ package scala.tools.scala4ant { true } - override def compilerName() = "nsc"; + def compilerName() = "nsc"; + + def execute() = { + attributes.log("Using " + compilerName() + " as scala compiler", + Project.MSG_VERBOSE); + + runCompiler( setupNscCommand().getArguments() ); + } + + def setupNscCommand() = { + //Console.println("setupScalaCommand"); + val cmd = new Commandline(); + val cp = new Path( this.project ); + + //- attribute @nscArgs in order to pass anything you like + val moreargs = this.attributes.asInstanceOf[NscTask].moreArgs(); + for(val a <- moreargs) { + Console.println("NscAdaptor adds argument '"+a+"'"); + cmd.createArgument().setValue(a); + } + + + //- encoding? @todo + //val stask = this.attributes.asInstanceOf[ScalacTask]; + //if(null != stask.getEncoding()) { + // cmd.createArgument().setValue( "-encoding" ); + // cmd.createArgument().setValue( stask.getEncoding() ); + //} + + //- destdir + if( destDir != null ) { + cmd.createArgument().setValue( "-d" ); + cmd.createArgument().setFile( destDir ); + cp.setLocation( destDir ); + } + + /* cp.addExisting( Path.systemClasspath );*/ + /* cp.addJavaRuntime(); */ + + //- classpath + if( compileClasspath != null ) { + cp.addExisting( compileClasspath ); + } + + cmd.createArgument().setValue("-classpath"); + cmd.createArgument().setPath( cp ); + + //var bcp = inferScalaPath(Path.systemClasspath.list()); + //val bcps = (bcp./: (PSEP) { (x:String,y:String) => x+PSEP+y }); + + /* scala.tools.util.ClassPath replaces "::" / ";;" at the beginning + with something meaningful + */ + //cmd.createArgument().setValue("-bootclasspath"); + //cmd.createArgument().setValue( bcps ); + + cmd.createArgument().setValue("-sourcepath"); + cmd.createArgument().setPath( + if (compileSourcepath != null) { + compileSourcepath; + } else { + src; + } + ); + + if (bootclasspath != null && bootclasspath.size() > 0) { + cmd.createArgument().setValue("-bootclasspath"); + cmd.createArgument().setPath(bootclasspath); + } + + //if (extdirs != null && extdirs.size() > 0) { + // cmd.createArgument().setValue("-extdirs"); + // cmd.createArgument().setPath(extdirs); + //} + + logAndAddFilesToCompile(cmd); + //Console.println("DONE setupScalaCommand"); + cmd + } + } } diff --git a/sources/scala/tools/scala4ant/NscTask.scala b/sources/scala/tools/scala4ant/NscTask.scala index f977796158..e50199f6ac 100644 --- a/sources/scala/tools/scala4ant/NscTask.scala +++ b/sources/scala/tools/scala4ant/NscTask.scala @@ -51,8 +51,8 @@ class NscTask extends Javac { override def execute() = { System.setProperty("scala.home", ScalaRuntime.home.toString()); - System.setProperty("scala.product", scala.tools.scalac.Main.PRODUCT); - System.setProperty("scala.version", scala.tools.scalac.Main.VERSION); + //System.setProperty("scala.product", scala.tools.scalac.Main.PRODUCT); + //System.setProperty("scala.version", scala.tools.scalac.Main.VERSION); System.setProperty("scala.class.path", "."); System.setProperty("scala.boot.class.path", ScalaRuntime.bootclasspath.toString()); -- cgit v1.2.3