diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/KobaltContext.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/KobaltContext.kt index b50ef886..5a9cba74 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/KobaltContext.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/KobaltContext.kt @@ -41,4 +41,10 @@ class InternalContext { private val incrementalSuccesses = hashSetOf() fun previousTaskWasIncrementalSuccess(projectName: String) = incrementalSuccesses.contains(projectName) ?: false fun setIncrementalSuccess(projectName: String) = incrementalSuccesses.add(projectName) + + /** + * Keep track of whether the build file was modified. If this boolean is true, incremental compilation + * will be disabled. + */ + var buildFileOutOfDate: Boolean = false } \ No newline at end of file diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/IncrementalManager.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/IncrementalManager.kt index ec8f3ae4..4b6e3b19 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/IncrementalManager.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/IncrementalManager.kt @@ -91,9 +91,9 @@ class IncrementalManager @Inject constructor(val args: Args) { var upToDate = false var taskOutputChecksum : String? = null - if (args.noIncremental) { + if (args.noIncremental || (Kobalt.context?.internalContext?.buildFileOutOfDate as Boolean)) { // - // If the user turned off incremental builds, always run this task + // If the user turned off incremental builds or if the build file was modified, always run this task // logIncremental(LEVEL, "Incremental builds are turned off, running $taskName") upToDate = false diff --git a/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt b/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt index 111f270c..5fabf8e5 100644 --- a/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt +++ b/src/main/kotlin/com/beust/kobalt/app/ParsedBuildFile.kt @@ -2,6 +2,7 @@ package com.beust.kobalt.app import com.beust.kobalt.KobaltException import com.beust.kobalt.Plugins +import com.beust.kobalt.api.Kobalt import com.beust.kobalt.api.KobaltContext import com.beust.kobalt.api.Project import com.beust.kobalt.internal.build.BuildFile @@ -111,6 +112,7 @@ class ParsedBuildFile(val buildFile: BuildFile, val context: KobaltContext, val generateJarFile(context, BuildFile(Paths.get(pluginSourceFile.path), "Plugins", Paths.get(buildScriptJar)), buildScriptJarFile, buildFile) VersionFile.generateVersionFile(buildScriptJarFile.parentFile) + Kobalt.context.internalContext.buildFileOutOfDate = true } //