From e4258e528f531d6e07bd4c8bbeffe023c5ce598c Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Fri, 24 Jan 2020 20:42:37 +0300 Subject: [PATCH] Introduce internal property sourceMapBaseDirs for Kotlin2JsCompile Separate property needed to prevent Gradle snapshotting absolute paths as inputs when passed as compiler argument. To reduce property visibility to external users put it to the impl class which will make it invisible in completion but still usable in Kotlin build. --- .../org/jetbrains/kotlin/gradle/dsl/KotlinJsOptionsImpl.kt | 6 ++++++ .../main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptionsImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptionsImpl.kt index 634dc8af22d..bbf9f9d806d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptionsImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinJsOptionsImpl.kt @@ -16,13 +16,19 @@ package org.jetbrains.kotlin.gradle.dsl +import org.gradle.api.file.FileCollection import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments internal class KotlinJsOptionsImpl : KotlinJsOptionsBase() { override var freeCompilerArgs: List = listOf() + var sourceMapBaseDirs: FileCollection? = null + override fun updateArguments(args: K2JSCompilerArguments) { super.updateArguments(args) copyFreeCompilerArgsToArgs(args) + sourceMapBaseDirs?.let { + args.sourceMapBaseDirs = it.asPath + } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index d0fc2224154..63a03a09588 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -547,6 +547,13 @@ open class Kotlin2JsCompile : AbstractKotlinCompile(), Ko return friendPaths.filter { filter(File(it)) } } + @Suppress("unused") + @get:InputFiles + @get:Optional + @get:PathSensitive(PathSensitivity.RELATIVE) + internal val sourceMapBaseDirs: FileCollection? + get() = kotlinOptionsImpl.sourceMapBaseDirs + private fun isHybridKotlinJsLibrary(file: File): Boolean = LibraryUtils.isKotlinJavascriptLibrary(file) && isKotlinLibrary(file)