mirror of https://github.com/sbt/sbt.git
Fixes @eed3s1gn's comments
* Use verbs. * compile actually saves the analysis * previousCompile loads previous anlaysis * explicit task to override for bytecode manipulation folkel.
This commit is contained in:
parent
59ba35ce90
commit
f0adf92345
|
|
@ -250,6 +250,7 @@ object Defaults extends BuildCommon {
|
|||
|
||||
lazy val configTasks = docTaskSettings(doc) ++ inTask(compile)(compileInputsSettings) ++ configGlobal ++ compileAnalysisSettings ++ Seq(
|
||||
compile <<= compileTask,
|
||||
manipulateBytecode := compileIncremental.value,
|
||||
compileIncremental <<= compileIncrementalTask tag (Tags.Compile, Tags.CPU),
|
||||
printWarnings <<= printWarningsTask,
|
||||
compileAnalysisFilename := {
|
||||
|
|
@ -781,10 +782,19 @@ object Defaults extends BuildCommon {
|
|||
@deprecated("Use inTask(compile)(compileInputsSettings)", "0.13.0")
|
||||
def compileTaskSettings: Seq[Setting[_]] = inTask(compile)(compileInputsSettings)
|
||||
|
||||
def compileTask: Initialize[Task[inc.Analysis]] = Def.task { saveAnalysis.value }
|
||||
def compileTask: Initialize[Task[inc.Analysis]] = Def.task {
|
||||
val setup: Compiler.IncSetup = compileIncSetup.value
|
||||
// TODO - expose bytecode manipulation phase.
|
||||
val analysisResult: Compiler.CompileResult = manipulateBytecode.value
|
||||
if (analysisResult.hasModified) {
|
||||
val store = MixedAnalyzingCompiler.staticCachedStore(setup.cacheFile)
|
||||
store.set(analysisResult.analysis, analysisResult.setup)
|
||||
}
|
||||
analysisResult.analysis
|
||||
}
|
||||
def compileIncrementalTask = Def.task {
|
||||
// TODO - Should readAnalysis + saveAnalysis be scoped by the compile task too?
|
||||
compileIncrementalTaskImpl(streams.value, (compileInputs in compile).value, readAnalysis.value, (compilerReporter in compile).value)
|
||||
compileIncrementalTaskImpl(streams.value, (compileInputs in compile).value, previousCompile.value, (compilerReporter in compile).value)
|
||||
}
|
||||
private[this] def compileIncrementalTaskImpl(s: TaskStreams, ci: Compiler.Inputs, previous: Compiler.PreviousAnalysis, reporter: Option[xsbti.Reporter]): Compiler.CompileResult =
|
||||
{
|
||||
|
|
@ -815,22 +825,13 @@ object Defaults extends BuildCommon {
|
|||
},
|
||||
compilerReporter := None)
|
||||
def compileAnalysisSettings: Seq[Setting[_]] = Seq(
|
||||
readAnalysis := {
|
||||
previousCompile := {
|
||||
val setup: Compiler.IncSetup = compileIncSetup.value
|
||||
val store = MixedAnalyzingCompiler.staticCachedStore(setup.cacheFile)
|
||||
store.get() match {
|
||||
case Some((an, setup)) => Compiler.PreviousAnalysis(an, Some(setup))
|
||||
case None => Compiler.PreviousAnalysis(Analysis.empty(nameHashing = setup.incOptions.nameHashing), None)
|
||||
}
|
||||
},
|
||||
saveAnalysis := {
|
||||
val setup: Compiler.IncSetup = compileIncSetup.value
|
||||
val analysisResult: Compiler.CompileResult = compileIncremental.value
|
||||
if (analysisResult.hasModified) {
|
||||
val store = MixedAnalyzingCompiler.staticCachedStore(setup.cacheFile)
|
||||
store.set(analysisResult.analysis, analysisResult.setup)
|
||||
}
|
||||
analysisResult.analysis
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -142,9 +142,9 @@ object Keys {
|
|||
val consoleQuick = TaskKey[Unit]("console-quick", "Starts the Scala interpreter with the project dependencies on the classpath.", ATask, console)
|
||||
val consoleProject = TaskKey[Unit]("console-project", "Starts the Scala interpreter with the sbt and the build definition on the classpath and useful imports.", AMinusTask)
|
||||
val compile = TaskKey[Analysis]("compile", "Compiles sources.", APlusTask)
|
||||
val manipulateBytecode = TaskKey[Compiler.CompileResult]("manipulateBytecode", "Manipulates generated bytecode", BTask)
|
||||
val compileIncremental = TaskKey[Compiler.CompileResult]("compileIncremental", "Actually runs the incremental compliation", DTask)
|
||||
val readAnalysis = TaskKey[Compiler.PreviousAnalysis]("readAnalysis", "Read the incremental compiler analysis from disk", DTask)
|
||||
val saveAnalysis = TaskKey[Analysis]("saveAnalysis", "Save the incremental compiler analysis to disk", DTask)
|
||||
val previousCompile = TaskKey[Compiler.PreviousAnalysis]("readAnalysis", "Read the incremental compiler analysis from disk", DTask)
|
||||
val compilers = TaskKey[Compiler.Compilers]("compilers", "Defines the Scala and Java compilers to use for compilation.", DTask)
|
||||
val compileAnalysisFilename = TaskKey[String]("compileAnalysisFilename", "Defines the filename used to store the incremental compiler analysis file (inside the streams cacheDirectory).", DTask)
|
||||
val compileIncSetup = TaskKey[Compiler.IncSetup]("inc-compile-setup", "Configures aspects of incremental compilation.", DTask)
|
||||
|
|
|
|||
Loading…
Reference in New Issue