diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index f320529b864..d76b5d3d06e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -137,7 +137,8 @@ internal open class GradleCompilerRunner(protected val task: Task) { outputFiles = environment.outputFiles.toList(), taskPath = task.path, buildReportMode = environment.buildReportMode, - kotlinScriptExtensions = environment.kotlinScriptExtensions + kotlinScriptExtensions = environment.kotlinScriptExtensions, + allWarningsAsErrors = compilerArgs.allWarningsAsErrors ) TaskLoggers.put(task.path, task.logger) runCompilerAsync(workArgs) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt index 0395a092896..c8b1f7539b1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt @@ -56,7 +56,8 @@ internal class GradleKotlinCompilerWorkArguments( val outputFiles: List, val taskPath: String, val buildReportMode: BuildReportMode?, - val kotlinScriptExtensions: Array + val kotlinScriptExtensions: Array, + val allWarningsAsErrors: Boolean ) : Serializable { companion object { const val serialVersionUID: Long = 0 @@ -95,6 +96,7 @@ internal class GradleKotlinCompilerWork @Inject constructor( private val taskPath = config.taskPath private val buildReportMode = config.buildReportMode private val kotlinScriptExtensions = config.kotlinScriptExtensions + private val allWarningsAsErrors = config.allWarningsAsErrors private val log: KotlinLogger = TaskLoggers.get(taskPath)?.let { GradleKotlinLogger(it).apply { debug("Using '$taskPath' logger") } } @@ -113,7 +115,7 @@ internal class GradleKotlinCompilerWork @Inject constructor( get() = incrementalCompilationEnvironment != null override fun run() { - val messageCollector = GradlePrintingMessageCollector(log) + val messageCollector = GradlePrintingMessageCollector(log, allWarningsAsErrors) val exitCode = compileWithDaemonOrFallbackImpl(messageCollector) if (incrementalCompilationEnvironment?.disableMultiModuleIC == true) { incrementalCompilationEnvironment.multiModuleICSettings.buildHistoryFile.delete() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt index aa218fd15ed..b12f89629bc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt @@ -95,7 +95,7 @@ open class KaptWithKotlincTask : KaptTask(), CompilerArgumentAwareWithInput { - logger.warn(renderedMessage) + if (allWarningsAsErrors) { + logger.error(renderedMessage) + } else { + logger.warn(renderedMessage) + } } CompilerMessageSeverity.INFO -> { logger.info(renderedMessage) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt index 47cd8f76873..f34a91d3faa 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt @@ -95,7 +95,7 @@ open class KotlinCompileCommon : AbstractKotlinCompile(), Kotl override fun callCompilerAsync(args: K2JVMCompilerArguments, sourceRoots: SourceRoots, changedFiles: ChangedFiles) { sourceRoots as SourceRoots.ForJvm - val messageCollector = GradlePrintingMessageCollector(logger) + val messageCollector = GradlePrintingMessageCollector(logger, args.allWarningsAsErrors) val outputItemCollector = OutputItemsCollectorImpl() val compilerRunner = compilerRunner() @@ -622,7 +622,7 @@ open class Kotlin2JsCompile : AbstractKotlinCompile(), Ko logger.kotlinDebug("compiling with args ${ArgumentUtils.convertArgumentsToStringList(args)}") - val messageCollector = GradlePrintingMessageCollector(logger) + val messageCollector = GradlePrintingMessageCollector(logger, args.allWarningsAsErrors) val outputItemCollector = OutputItemsCollectorImpl() val compilerRunner = compilerRunner()