From 59a052a615399f2229e15e01a2c214447cec6ee7 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 1 Sep 2022 16:56:31 +0200 Subject: [PATCH] Add '@NormalizeLineEndings' annotation to task inputs Excluding '@Classpath' inputs due to the bug in Gradle: https://github.com/gradle/gradle/issues/20708. Also MacOs only tasks are excluded. ^KT-50673 Fixed --- .../jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt | 3 +++ .../kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt | 3 +++ .../org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt | 2 ++ .../gradle/plugin/mpp/TransformKotlinGranularMetadata.kt | 2 ++ .../pm20/TransformKotlinGranularMetadataForFragment.kt | 2 ++ .../gradle/scripting/internal/ScriptingGradleSubplugin.kt | 2 ++ .../kotlin/gradle/targets/js/binaryen/BinaryenExec.kt | 2 ++ .../org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt | 2 ++ .../kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt | 1 + .../kotlin/gradle/targets/js/nodejs/NodeJsExec.kt | 2 ++ .../js/npm/resolver/KotlinCompilationNpmResolver.kt | 3 +++ .../gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt | 3 +++ .../gradle/targets/js/npm/tasks/RootPackageJsonTask.kt | 2 ++ .../kotlin/gradle/targets/js/testing/KotlinJsTest.kt | 4 ++++ .../targets/js/typescript/TypeScriptValidationTask.kt | 2 ++ .../kotlin/gradle/targets/js/webpack/KotlinWebpack.kt | 4 ++++ .../kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt | 2 ++ .../CInteropMetadataDependencyTransformationTask.kt | 1 - .../CopyCInteropCommonizerTaskOutputForIdeTask.kt | 2 ++ .../gradle/targets/native/tasks/KotlinNativeTasks.kt | 4 ++++ .../gradle/targets/native/tasks/KotlinNativeTest.kt | 2 ++ .../kotlin/gradle/tasks/InspectClassesForMultiModuleIC.kt | 5 +++++ .../jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt | 2 ++ .../org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt | 3 +++ .../kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 8 ++++++++ 25 files changed, 67 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt index ff633d8e892..a4dcdd026fd 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTaskConfigs.kt @@ -14,6 +14,7 @@ import org.gradle.api.provider.Property import org.gradle.api.tasks.* import org.gradle.api.tasks.util.PatternFilterable import org.gradle.work.Incremental +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.dsl.KotlinCompile import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.plugin.CompilerPluginConfig @@ -22,6 +23,7 @@ interface KotlinCompileTool : PatternFilterable, Task { @get:InputFiles @get:SkipWhenEmpty @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) val sources: FileCollection @@ -138,6 +140,7 @@ interface BaseKapt : Task { @get:InputFiles @get:IgnoreEmptyDirectories @get:Incremental + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) val source: ConfigurableFileCollection diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt index da98ce2db24..086c4effbd0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt @@ -22,6 +22,7 @@ import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.provider.Property import org.gradle.api.tasks.* import org.gradle.work.Incremental +import org.gradle.work.NormalizeLineEndings import org.gradle.workers.WorkerExecutor import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl @@ -63,6 +64,7 @@ abstract class KaptGenerateStubsTask @Inject constructor( */ @get:InputFiles @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) @get:Incremental abstract val additionalSources: ConfigurableFileCollection @@ -71,6 +73,7 @@ abstract class KaptGenerateStubsTask @Inject constructor( // Task need to run even if there is no Kotlin sources, but only Java @get:Incremental + @get:NormalizeLineEndings @get:InputFiles @get:IgnoreEmptyDirectories @get:PathSensitive(PathSensitivity.RELATIVE) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt index d3295a0732f..91314e68687 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt @@ -11,6 +11,7 @@ import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.work.Incremental import org.gradle.work.InputChanges +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporterImpl import org.jetbrains.kotlin.gradle.internal.kapt.incremental.ClasspathSnapshot @@ -47,6 +48,7 @@ abstract class KaptTask @Inject constructor( @get:PathSensitive(PathSensitivity.NONE) @get:Incremental @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:Optional @get:InputFiles abstract val classpathStructure: ConfigurableFileCollection diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/TransformKotlinGranularMetadata.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/TransformKotlinGranularMetadata.kt index 563334f727c..d7a07419a09 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/TransformKotlinGranularMetadata.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/TransformKotlinGranularMetadata.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.DefaultTask import org.gradle.api.file.FileCollection import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet @@ -40,6 +41,7 @@ open class TransformKotlinGranularMetadata @Suppress("unused") // Gradle input @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles @get:PathSensitive(PathSensitivity.RELATIVE) internal val allSourceSetsMetadataConfiguration: FileCollection by lazy { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt index 8f92a2847c6..0b1ff91d595 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.gradle.api.DefaultTask import org.gradle.api.file.FileCollection import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution import org.jetbrains.kotlin.gradle.plugin.mpp.getAllCompiledSourceSetMetadata import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName @@ -32,6 +33,7 @@ internal open class TransformKotlinGranularMetadataForFragment @Suppress("unused") // Gradle input @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles @get:PathSensitive(PathSensitivity.RELATIVE) internal val allSourceSetsMetadataConfiguration: FileCollection by lazy { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt index f9cb0077cab..a87ab28d191 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt @@ -18,6 +18,7 @@ import org.gradle.api.artifacts.transform.TransformParameters import org.gradle.api.attributes.Attribute import org.gradle.api.file.FileSystemLocation import org.gradle.api.provider.Provider +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.cli.common.messages.MessageRenderer import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull @@ -116,6 +117,7 @@ private fun configureDiscoveryTransformation( internal abstract class DiscoverScriptExtensionsTransformAction : TransformAction { @get:InputArtifact + @get:NormalizeLineEndings abstract val inputArtifact: Provider override fun transform(outputs: TransformOutputs) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt index b203ff7d48c..753a4d68b70 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.binaryen import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.tasks.registerTask @@ -41,6 +42,7 @@ constructor() : AbstractExecTask(BinaryenExec::class.java) { ) @InputFile + @NormalizeLineEndings val inputFileProperty: RegularFileProperty = project.newFileProperty() @OutputFile diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt index e163048d4e2..4617830c256 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.d8 import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments @@ -35,6 +36,7 @@ constructor( @Optional @PathSensitive(PathSensitivity.ABSOLUTE) @InputFile + @NormalizeLineEndings val inputFileProperty: RegularFileProperty = project.newFileProperty() override fun exec() { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt index 5ac2185971d..da6cc393a81 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt @@ -91,6 +91,7 @@ abstract class KotlinJsIrLink @Inject constructor( @get:SkipWhenEmpty @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputDirectory @get:PathSensitive(PathSensitivity.RELATIVE) internal abstract val entryModule: DirectoryProperty diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt index 7d51b6eb020..5c596bdcbe3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.nodejs import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency @@ -44,6 +45,7 @@ constructor( @Optional @PathSensitive(PathSensitivity.ABSOLUTE) @InputFile + @NormalizeLineEndings val inputFileProperty: RegularFileProperty = project.newFileProperty() @get:Internal diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index 34f1c202413..d572ecc25b3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -17,6 +17,7 @@ import org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier import org.gradle.api.tasks.* import org.gradle.api.tasks.bundling.Zip import org.gradle.configurationcache.extensions.serviceOf +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.categoryByName import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -390,11 +391,13 @@ internal class KotlinCompilationNpmResolver( @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles val internalCompositeDependencies: Collection, @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles val externalGradleDependencies: Collection, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt index 975cbe02d3c..e6492c41ec9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.tasks import org.gradle.api.DefaultTask import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager @@ -48,6 +49,7 @@ open class KotlinNpmInstallTask : DefaultTask() { @Suppress("unused") @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles val packageJsonFiles: Collection by lazy { resolutionManager.packageJsonFiles @@ -55,6 +57,7 @@ open class KotlinNpmInstallTask : DefaultTask() { @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles val preparedFiles: Collection by lazy { (nodeJs ?: unavailableValueError("nodeJs")).packageManager.preparedFiles(nodeJs.asNpmEnvironment) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt index 0fbf96f130c..ebd1ac6d6f3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.tasks import org.gradle.api.DefaultTask import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject import java.io.File @@ -31,6 +32,7 @@ open class RootPackageJsonTask : DefaultTask() { @get:PathSensitive(PathSensitivity.RELATIVE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles val packageJsonFiles: Collection by lazy { resolutionManager.packageJsonFiles diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt index 2ce3aa19659..4c7601c830f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt @@ -10,6 +10,7 @@ import org.gradle.api.file.FileCollection import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* import org.gradle.process.internal.DefaultProcessForkOptions +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency @@ -72,6 +73,7 @@ constructor( @PathSensitive(PathSensitivity.ABSOLUTE) @InputFile + @NormalizeLineEndings val inputFileProperty: RegularFileProperty = project.newFileProperty() @Input @@ -80,6 +82,7 @@ constructor( @Suppress("unused") @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles val runtimeClasspath: FileCollection by lazy { compilation.runtimeDependencyFiles @@ -88,6 +91,7 @@ constructor( @Suppress("unused") @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.ABSOLUTE) internal val compilationOutputs: FileCollection by lazy { compilation.output.allOutputs diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt index c680b863db2..6400149cc26 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt @@ -9,6 +9,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.tasks.* import org.gradle.api.provider.Property import org.gradle.api.file.DirectoryProperty +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.internal.execWithProgress import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency @@ -39,6 +40,7 @@ constructor( get() = setOf(nodeJs.versions.typescript) @get:SkipWhenEmpty + @get:NormalizeLineEndings @get:InputDirectory @get:PathSensitive(PathSensitivity.RELATIVE) abstract val inputDir: DirectoryProperty diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt index 9cca9194d63..5e40df833cb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt @@ -19,6 +19,7 @@ import org.gradle.deployment.internal.DeploymentHandle import org.gradle.deployment.internal.DeploymentRegistry import org.gradle.process.internal.ExecHandle import org.gradle.process.internal.ExecHandleFactory +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporterImpl import org.jetbrains.kotlin.build.report.metrics.BuildPerformanceMetric @@ -100,6 +101,7 @@ constructor( @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:InputFile + @get:NormalizeLineEndings val entryProperty: RegularFileProperty = objects.fileProperty().fileProvider(compilation.compileKotlinTask.outputFileProperty) init { @@ -115,6 +117,7 @@ constructor( @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings val runtimeClasspath: FileCollection by lazy { compilation.compileDependencyFiles } @@ -171,6 +174,7 @@ constructor( @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:Optional @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputDirectory open val configDirectory: File? get() = projectDir.resolve("webpack.config.d").takeIf { it.isDirectory } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt index 886e1e7a296..d12368d9385 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt @@ -12,12 +12,14 @@ import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.utils.contentEquals import java.io.File import javax.inject.Inject abstract class YarnLockCopyTask : DefaultTask() { + @get:NormalizeLineEndings @get:InputFile @get:PathSensitive(PathSensitivity.RELATIVE) abstract val inputFile: RegularFileProperty diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt index 1eb7d2c6736..2d31c96d8f0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt @@ -121,7 +121,6 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru } @Suppress("unused") - @get:InputFiles @get:Classpath protected val inputArtifactFiles: FileCollection = project.filesProvider { sourceSet.dependencyTransformations.values.map { it.configurationToResolve.withoutProjectDependencies() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CopyCInteropCommonizerTaskOutputForIdeTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CopyCInteropCommonizerTaskOutputForIdeTask.kt index 88e323b5eae..d29215584b6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CopyCInteropCommonizerTaskOutputForIdeTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CopyCInteropCommonizerTaskOutputForIdeTask.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.native.internal import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.work.NormalizeLineEndings import java.io.File internal open class CopyCommonizeCInteropForIdeTask : AbstractCInteropCommonizerTask() { @@ -16,6 +17,7 @@ internal open class CopyCommonizeCInteropForIdeTask : AbstractCInteropCommonizer @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.ABSOLUTE) val cInteropCommonizerTaskOutputDirectories: Provider> = commonizeCInteropTask.map { it.allOutputDirectories } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index f4dfe2b6cff..6f74bfb8bce 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -27,6 +27,7 @@ import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory import org.gradle.api.tasks.* import org.gradle.process.ExecOperations +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments import org.jetbrains.kotlin.compilerRunner.* @@ -1201,6 +1202,7 @@ open class CInteropProcess @get:InputFile @get:PathSensitive(PathSensitivity.RELATIVE) + @get:NormalizeLineEndings val defFile: File get() = settings.defFileProperty.get() @get:Optional @@ -1215,6 +1217,7 @@ open class CInteropProcess @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) val headers: FileCollection get() = settings.headers @@ -1228,6 +1231,7 @@ open class CInteropProcess @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) val libraries: FileCollection get() = settings.dependencyFiles.filterOutPublishableInteropLibs(libDirectories) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt index 2ea886fb73d..76cfc9a0285 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt @@ -15,6 +15,7 @@ import org.gradle.api.tasks.* import org.gradle.api.tasks.options.Option import org.gradle.process.ProcessForkOptions import org.gradle.process.internal.DefaultProcessForkOptions +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.compilerRunner.konanVersion import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec @@ -39,6 +40,7 @@ abstract class KotlinNativeTest: KotlinTest() { @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:InputFiles // use FileCollection & @InputFiles rather than @InputFile to allow for task dependencies built-into this FileCollection @get:SkipWhenEmpty @Suppress("UNUSED") // Gradle input diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/InspectClassesForMultiModuleIC.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/InspectClassesForMultiModuleIC.kt index b215878c53a..ec0baa2810b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/InspectClassesForMultiModuleIC.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/InspectClassesForMultiModuleIC.kt @@ -12,9 +12,12 @@ import org.gradle.api.file.RegularFileProperty import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault +import org.gradle.work.NormalizeLineEndings import java.io.File import javax.inject.Inject +@DisableCachingByDefault internal abstract class InspectClassesForMultiModuleIC @Inject constructor( objects: ObjectFactory ) : DefaultTask() { @@ -30,11 +33,13 @@ internal abstract class InspectClassesForMultiModuleIC @Inject constructor( @get:IgnoreEmptyDirectories @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:InputFiles + @get:NormalizeLineEndings internal abstract val sourceSetOutputClassesDir: ConfigurableFileCollection @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings internal val classFiles: FileCollection = objects.fileCollection() .from({ sourceSetOutputClassesDir.asFileTree.matching { it.include("**/*.class") } }) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt index 33828fdc70a..5d63ab8eb90 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt @@ -20,6 +20,7 @@ import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.model.ObjectFactory import org.gradle.api.tasks.* import org.gradle.work.InputChanges +import org.gradle.work.NormalizeLineEndings import org.gradle.workers.WorkerExecutor import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments import org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment @@ -69,6 +70,7 @@ abstract class KotlinCompileCommon @Inject constructor( @get:PathSensitive(PathSensitivity.RELATIVE) @get:IgnoreEmptyDirectories @get:InputFiles + @get:NormalizeLineEndings internal val refinesMetadataPaths: ConfigurableFileCollection = objectFactory.fileCollection() @get:Internal diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt index cc4eecf5ac4..fe31b833e56 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinJsDce.kt @@ -23,6 +23,7 @@ import org.gradle.api.tasks.* import org.gradle.work.ChangeType import org.gradle.work.Incremental import org.gradle.work.InputChanges +import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.cli.common.arguments.DevModeOverwritingStrategies import org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments import org.jetbrains.kotlin.cli.js.dce.K2JSDce @@ -79,11 +80,13 @@ abstract class KotlinJsDce @Inject constructor( @get:Incremental @get:InputFiles @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) override val sources: FileCollection = super.sources @get:Incremental @get:InputFiles + @get:NormalizeLineEndings abstract override val libraries: ConfigurableFileCollection private val buildDir = project.layout.buildDirectory diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index bf0362fa79f..5308c8b4a51 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -28,6 +28,7 @@ import org.gradle.api.tasks.util.PatternSet import org.gradle.work.ChangeType import org.gradle.work.Incremental import org.gradle.work.InputChanges +import org.gradle.work.NormalizeLineEndings import org.gradle.workers.WorkerExecutor import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS import org.jetbrains.kotlin.build.report.metrics.* @@ -303,6 +304,7 @@ abstract class AbstractKotlinCompile @Inject constr @get:InputFiles @get:IgnoreEmptyDirectories @get:Incremental + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) internal val commonSourceSet: ConfigurableFileCollection = objectFactory.fileCollection() @@ -644,6 +646,7 @@ abstract class KotlinCompile @Inject constructor( @get:InputFiles @get:SkipWhenEmpty @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) internal open val scriptSources: FileCollection = scriptSourceFiles .asFileTree @@ -804,6 +807,7 @@ abstract class KotlinCompile @Inject constructor( @get:Incremental @get:InputFiles @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) open val javaSources: FileCollection = objectFactory.fileCollection() .from( @@ -821,6 +825,7 @@ abstract class KotlinCompile @Inject constructor( @get:Incremental @get:InputFiles @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) internal open val androidLayoutResources: FileCollection = androidLayoutResourceFiles .asFileTree @@ -957,6 +962,7 @@ abstract class Kotlin2JsCompile @Inject constructor( @get:IgnoreEmptyDirectories @get:Incremental @get:Optional + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) internal val friendDependencies: FileCollection = objectFactory .fileCollection() @@ -972,6 +978,7 @@ abstract class Kotlin2JsCompile @Inject constructor( @get:InputFiles @get:IgnoreEmptyDirectories @get:Optional + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) internal val sourceMapBaseDirs: FileCollection? get() = (kotlinOptions as KotlinJsOptionsImpl).sourceMapBaseDirs @@ -1119,6 +1126,7 @@ data class KotlinCompilerPluginData( @get:InputFiles @get:IgnoreEmptyDirectories + @get:NormalizeLineEndings @get:PathSensitive(PathSensitivity.RELATIVE) val inputFiles: Set,