mirror of https://github.com/sbt/sbt.git
Honor maxErrors for compileInput
This uses a recently added technique (cf `TaskKey.local`) to introduce local TaskKey and get around the nine parameter restriction.
This commit is contained in:
parent
b16d4a36ad
commit
e1e6b25d0c
|
|
@ -16,7 +16,7 @@ package sbt
|
|||
import org.scalatools.testing.{AnnotatedFingerprint, SubclassFingerprint}
|
||||
|
||||
import sys.error
|
||||
import scala.xml.{Node => XNode,NodeSeq}
|
||||
import scala.xml.NodeSeq
|
||||
import org.apache.ivy.core.module.{descriptor, id}
|
||||
import descriptor.ModuleDescriptor, id.ModuleRevisionId
|
||||
import java.io.File
|
||||
|
|
@ -193,11 +193,10 @@ object Defaults extends BuildCommon
|
|||
}
|
||||
def compilersSetting = compilers <<= (scalaInstance, appConfiguration, streams, classpathOptions, javaHome) map { (si, app, s, co, jh) => Compiler.compilers(si, co, jh)(app, s.log) }
|
||||
|
||||
lazy val configTasks = docSetting(doc) ++ Seq(
|
||||
lazy val configTasks = docSetting(doc) ++ compileInputsSettings ++ Seq(
|
||||
initialCommands in GlobalScope :== "",
|
||||
cleanupCommands in GlobalScope :== "",
|
||||
compile <<= compileTask,
|
||||
compileInputs <<= compileInputsTask,
|
||||
compileIncSetup <<= compileIncSetupTask,
|
||||
console <<= consoleTask,
|
||||
consoleQuick <<= consoleQuickTask,
|
||||
|
|
@ -442,11 +441,10 @@ object Defaults extends BuildCommon
|
|||
new Run(si, trap, tmp)
|
||||
}
|
||||
|
||||
def docSetting(key: TaskKey[File]): Seq[Setting[_]] = inTask(key)(Seq(
|
||||
def docSetting(key: TaskKey[File]): Seq[Setting[_]] = inTask(key)(compileInputsSettings ++ Seq(
|
||||
cacheDirectory ~= (_ / key.key.label),
|
||||
target <<= docDirectory, // deprecate docDirectory in favor of 'target in doc'; remove when docDirectory is removed
|
||||
scalacOptions <<= scaladocOptions or scalacOptions, // deprecate scaladocOptions in favor of 'scalacOptions in doc'; remove when scaladocOptions is removed
|
||||
compileInputs <<= compileInputsTask,
|
||||
key in TaskGlobal <<= (cacheDirectory, compileInputs, target, configuration, streams) map { (cache, in, out, config, s) =>
|
||||
// For Scala/Java hybrid projects, the output docs are rebased to `scala` or `java` sub-directory accordingly. We do hybrid
|
||||
// mode iff both *.scala and *.java files exist -- other doc resources (package.html, *.jpg etc.) don't influence the decision.
|
||||
|
|
@ -488,13 +486,15 @@ object Defaults extends BuildCommon
|
|||
(dependencyClasspath, cacheDirectory, skip in compile, definesClass) map { (cp, cacheDir, skip, definesC) =>
|
||||
Compiler.IncSetup(analysisMap(cp), definesC, skip, cacheDir / "compile")
|
||||
}
|
||||
def compileInputsTask =
|
||||
(dependencyClasspath, sources, compilers, javacOptions, scalacOptions, classDirectory, compileOrder, compileIncSetup, streams) map {
|
||||
(cp, srcs, cs, javacOpts, scalacOpts, classes, order, incSetup, s) =>
|
||||
val classpath = classes +: data(cp)
|
||||
Compiler.inputs(classpath, srcs, classes, scalacOpts, javacOpts, 100, order)(cs, incSetup, s.log)
|
||||
}
|
||||
|
||||
def compileInputsSettings: Seq[Setting[_]] = {
|
||||
val optionsPair = TaskKey.local[(Seq[String], Seq[String])]
|
||||
Seq(optionsPair <<= (scalacOptions, javacOptions) map Pair.apply,
|
||||
compileInputs <<= (dependencyClasspath, sources, compilers, optionsPair, classDirectory, compileOrder, compileIncSetup, maxErrors, streams) map {
|
||||
(cp, srcs, cs, optsPair, classes, order, incSetup, maxErr, s) =>
|
||||
Compiler.inputs(classes +: data(cp), srcs, classes, optsPair._1, optsPair._2, maxErr, order)(cs, incSetup, s.log)
|
||||
})
|
||||
}
|
||||
|
||||
def sbtPluginExtra(m: ModuleID, sbtV: String, scalaV: String): ModuleID = m.extra(CustomPomParser.SbtVersionKey -> sbtV, CustomPomParser.ScalaVersionKey -> scalaV).copy(crossVersion = false)
|
||||
def writePluginsDescriptor(plugins: Set[String], dir: File): Seq[File] =
|
||||
{
|
||||
|
|
@ -1205,4 +1205,4 @@ trait BuildCommon
|
|||
|
||||
def getPrevious[T](task: TaskKey[T]): Initialize[Task[Option[T]]] =
|
||||
(state, resolvedScoped) map { (s, ctx) => getFromContext(task, ctx, s) }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@ $ exists "target/api/java"
|
|||
|
||||
> 'set sources in (Compile, doc) <<= sources in (Compile, doc) map { _.filterNot(_.getName endsWith ".java") }'
|
||||
|
||||
> clean
|
||||
> doc
|
||||
> ; clean ; doc
|
||||
|
||||
# pure scala project, only scaladoc at top level
|
||||
$ exists "target/api/index.js"
|
||||
|
|
@ -24,8 +23,7 @@ $ absent "target/api/java"
|
|||
|
||||
> 'set sources in (Compile, doc) <<= sources in Compile map { _.filter(_.getName endsWith ".java") }'
|
||||
|
||||
> clean
|
||||
> doc
|
||||
> ; clean ; doc
|
||||
|
||||
# pure java project, only javadoc at top level
|
||||
$ exists "target/api/package-list"
|
||||
|
|
|
|||
Loading…
Reference in New Issue