summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.xml8
-rw-r--r--src/compiler/scala/tools/ant/sabbus/Make.scala2
-rw-r--r--src/compiler/scala/tools/ant/sabbus/ScalacFork.scala17
-rw-r--r--src/compiler/scala/tools/ant/sabbus/Settings.scala14
-rw-r--r--src/compiler/scala/tools/ant/sabbus/TaskArgs.scala19
-rw-r--r--tools/get-scala-revision.bat4
6 files changed, 22 insertions, 42 deletions
diff --git a/build.xml b/build.xml
index 4f359f8894..accaa92ec0 100644
--- a/build.xml
+++ b/build.xml
@@ -634,13 +634,11 @@ QUICK BUILD (QUICK)
<scalacfork
destdir="${build-quick.dir}/classes/library"
compilerpathref="locker.classpath"
- params="${scalac.args.quick} -Xplugin-require:continuations -P:continuations:enable"
+ params="${scalac.args.quick} -Xpluginsdir ${build-quick.dir}/misc/scala-devel/plugins -Xplugin-require:continuations -P:continuations:enable"
srcdir="${src.dir}/continuations/library"
jvmargs="${scalacfork.jvmargs}">
<include name="**/*.scala"/>
<compilationpath refid="quick.compilation.path"/>
- <compilerarg value="-Xpluginsdir"/>
- <compilerarg file="${build-quick.dir}/misc/scala-devel/plugins"/>
</scalacfork>
<touch file="${build-quick.dir}/plugins.complete" verbose="no"/>
<stopwatch name="quick.plugins.timer" action="total"/>
@@ -1149,13 +1147,11 @@ BOOTSTRAPPING BUILD (STRAP)
<scalacfork
destdir="${build-strap.dir}/classes/library"
compilerpathref="pack.classpath"
- params="${scalac.args.all} -Xplugin-require:continuations -P:continuations:enable"
+ params="${scalac.args.all} -Xpluginsdir ${build-strap.dir}/misc/scala-devel/plugins -Xplugin-require:continuations -P:continuations:enable"
srcdir="${src.dir}/continuations/library"
jvmargs="${scalacfork.jvmargs}">
<include name="**/*.scala"/>
<compilationpath refid="strap.compilation.path"/>
- <compilerarg value="-Xpluginsdir"/>
- <compilerarg file="${build-strap.dir}/misc/scala-devel/plugins"/>
</scalacfork>
<touch file="${build-strap.dir}/plugins.complete" verbose="no"/>
<stopwatch name="strap.plugins.timer" action="total"/>
diff --git a/src/compiler/scala/tools/ant/sabbus/Make.scala b/src/compiler/scala/tools/ant/sabbus/Make.scala
index 57505420c5..75cd0105ac 100644
--- a/src/compiler/scala/tools/ant/sabbus/Make.scala
+++ b/src/compiler/scala/tools/ant/sabbus/Make.scala
@@ -21,7 +21,7 @@ class Make extends Task with TaskArgs {
if (!compTarget.isEmpty) settings.target = compTarget.get
if (!compilationPath.isEmpty) settings.classpath = compilationPath.get
if (!sourcePath.isEmpty) settings.sourcepath = sourcePath.get
- settings.extraParams = extraArgsFlat
+ if (!params.isEmpty) settings.more = params.get
Compilers.make(id.get, (compilerPath.get.list.map{ path => new File(path).toURI.toURL }), settings)
}
}
diff --git a/src/compiler/scala/tools/ant/sabbus/ScalacFork.scala b/src/compiler/scala/tools/ant/sabbus/ScalacFork.scala
index a39de64c5a..5da531146b 100644
--- a/src/compiler/scala/tools/ant/sabbus/ScalacFork.scala
+++ b/src/compiler/scala/tools/ant/sabbus/ScalacFork.scala
@@ -23,16 +23,14 @@ import scala.tools.nsc.util.ScalaClassLoader
* - `failonerror`,
* - `timeout`,
* - `jvmargs`,
- * - `argfile`,
- * - `params`.
+ * - `argfile`.
*
* It also takes the following parameters as nested elements:
* - `src` (for `srcdir`),
* - `classpath`,
* - `sourcepath`,
* - `bootclasspath`,
- * - `extdirs`,
- * - `compilerarg`.
+ * - `extdirs`.
*
* @author Gilles Dubochet
*/
@@ -101,7 +99,7 @@ class ScalacFork extends ScalaMatchingTask with ScalacShared with TaskArgs {
compTarget foreach (settings.target = _)
compilationPath foreach (settings.classpath = _)
sourcePath foreach (settings.sourcepath = _)
- settings.extraParams = extraArgsFlat
+ params foreach (settings.more = _)
if (isMSIL)
settings.sourcedir = sourceDir
@@ -134,17 +132,10 @@ class ScalacFork extends ScalaMatchingTask with ScalacShared with TaskArgs {
java setClasspath compilerPath
java setClassname MainClass
- // Encode scalac/javac args for use in a file to be read back via "@file.txt"
- def encodeScalacArgsFile(t: Traversable[String]) = t map { s =>
- if(s.find(c => c <= ' ' || "\"'\\".contains(c)).isDefined)
- "\"" + s.flatMap(c => (if(c == '"' || c == '\\') "\\" else "") + c ) + "\""
- else s
- } mkString "\n"
-
// dump the arguments to a file and do "java @file"
val tempArgFile = io.File.makeTemp("scalacfork")
val tokens = settings.toArgs ++ (includedFiles map (_.getPath))
- tempArgFile writeAll encodeScalacArgsFile(tokens)
+ tempArgFile writeAll (tokens mkString " ")
val paths = List(Some(tempArgFile.toAbsolute.path), argfile).flatten map (_.toString)
val res = execWithArgFiles(java, paths)
diff --git a/src/compiler/scala/tools/ant/sabbus/Settings.scala b/src/compiler/scala/tools/ant/sabbus/Settings.scala
index c62ea172ed..4d4e3cdb08 100644
--- a/src/compiler/scala/tools/ant/sabbus/Settings.scala
+++ b/src/compiler/scala/tools/ant/sabbus/Settings.scala
@@ -58,14 +58,16 @@ class Settings {
def optimise = optimiseBf
def optimise_=(b: Boolean) { optimiseBf = b }
- private var extraParamsBf: Seq[String] = Seq()
- def extraParams = extraParamsBf
- def extraParams_=(s: Seq[String]): this.type = { extraParamsBf = s; this }
+ private var moreBf: Option[String] = None
+ def more = moreBf.get
+ def more_=(s: String): this.type = { moreBf = Some(s); this }
+
+ private def q(o: AnyRef) = "\"" + o.toString.replace("""\""", """\\""") + "\""
def toArgs: List[String] =
(if (!gBf.isEmpty) "-g:"+g :: Nil else Nil) :::
(if (uncheckedBf) "-unchecked" :: Nil else Nil) :::
- (if (!classpathBf.isEmpty) "-classpath" :: classpath.toString :: Nil else Nil) :::
+ (if (!classpathBf.isEmpty) "-classpath" :: q(classpath) :: Nil else Nil) :::
(if (!sourcepathBf.isEmpty) "-sourcepath" :: sourcepath.toString :: Nil else Nil) :::
(if (!sourcedirBf.isEmpty) "-Xsourcedir" :: sourcedir.toString :: Nil else Nil) :::
(if (!bootclasspathBf.isEmpty) "-bootclasspath" :: bootclasspath.toString :: Nil else Nil) :::
@@ -74,7 +76,7 @@ class Settings {
(if (!encodingBf.isEmpty) "-encoding" :: encoding :: Nil else Nil) :::
(if (!targetBf.isEmpty) "-target:"+target :: Nil else Nil) :::
(if (optimiseBf) "-optimise" :: Nil else Nil) :::
- extraParamsBf.toList
+ (if (!moreBf.isEmpty) (more split ' ').toList else Nil)
override def equals(that: Any): Boolean = that match {
case cs: Settings =>
@@ -89,7 +91,7 @@ class Settings {
this.encodingBf == cs.encodingBf &&
this.targetBf == cs.targetBf &&
this.optimiseBf == cs.optimiseBf &&
- this.extraParamsBf == cs.extraParamsBf
+ this.moreBf == cs.moreBf
case _ => false
}
diff --git a/src/compiler/scala/tools/ant/sabbus/TaskArgs.scala b/src/compiler/scala/tools/ant/sabbus/TaskArgs.scala
index ca210f7187..b2487355e4 100644
--- a/src/compiler/scala/tools/ant/sabbus/TaskArgs.scala
+++ b/src/compiler/scala/tools/ant/sabbus/TaskArgs.scala
@@ -12,7 +12,6 @@ package scala.tools.ant.sabbus
import java.io.File
import org.apache.tools.ant.Task
import org.apache.tools.ant.types.{Path, Reference}
-import org.apache.tools.ant.types.Commandline.Argument
trait CompilationPathProperty {
this: Task =>
@@ -42,13 +41,10 @@ trait TaskArgs extends CompilationPathProperty {
}
def setParams(input: String) {
- extraArgs ++= input.split(' ').map { s => val a = new Argument; a.setValue(s); a }
- }
-
- def createCompilerArg(): Argument = {
- val a = new Argument
- extraArgs :+= a
- a
+ params = params match {
+ case None => Some(input)
+ case Some(ps) => Some(ps + " " + input)
+ }
}
def setTarget(input: String) {
@@ -88,16 +84,11 @@ trait TaskArgs extends CompilationPathProperty {
}
protected var id: Option[String] = None
- protected var extraArgs: Seq[Argument] = Seq()
+ protected var params: Option[String] = None
protected var compTarget: Option[String] = None
protected var sourcePath: Option[Path] = None
protected var compilerPath: Option[Path] = None
protected var destinationDir: Option[File] = None
- def extraArgsFlat: Seq[String] = extraArgs flatMap { a =>
- val parts = a.getParts
- if(parts eq null) Seq[String]() else parts.toSeq
- }
-
def isMSIL = compTarget exists (_ == "msil")
}
diff --git a/tools/get-scala-revision.bat b/tools/get-scala-revision.bat
index 880bcc3f5c..c9de414cea 100644
--- a/tools/get-scala-revision.bat
+++ b/tools/get-scala-revision.bat
@@ -14,9 +14,9 @@ if "%OS%" NEQ "Windows_NT" (
set _DIR=
if "%*"=="" (
- for /f "delims=;" %%i in ('cd') do set "_DIR=%%i"
+ for /f %%i in ('cd') do set _DIR=%%i
) else (
- set "_DIR=%~1"
+ set _DIR=%~1
)
cd %_DIR%