From ba6cadfc3848cfb6d0907575fda1865a555760bc Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 26 Mar 2020 14:36:47 +0300 Subject: [PATCH] [Gradle, JS] Use name of included build by root project #KT-32466 fixed #KT-36784 fixed #KT-36864 fixed --- .../npm/resolver/KotlinCompilationNpmResolver.kt | 6 ++++-- .../org/jetbrains/kotlin/gradle/utils/Paths.kt | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/Paths.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index 7efdf454cda..3df8eab5323 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -11,6 +11,7 @@ import org.gradle.api.artifacts.ResolvedDependency import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.attributes.Usage import org.gradle.api.initialization.IncludedBuild +import org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFiles import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation @@ -27,6 +28,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinCompilationNpmResolution import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask +import org.jetbrains.kotlin.gradle.utils.topRealPath import java.io.File import java.io.Serializable @@ -204,8 +206,8 @@ internal class KotlinCompilationNpmResolver( } if (clazz.isAssignableFrom(artifactId::class.java)) { - (artifactId.componentIdentifier as ProjectComponentIdentifier).let { identifier -> - val includedBuild = project.gradle.includedBuild(identifier.projectName.removePrefix(":")) + (artifactId.componentIdentifier as DefaultProjectComponentIdentifier).let { identifier -> + val includedBuild = project.gradle.includedBuild(identifier.identityPath.topRealPath().name!!) internalCompositeDependencies.add(CompositeDependency(dependency, includedBuild)) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/Paths.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/Paths.kt new file mode 100644 index 00000000000..cba4a7d36a7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/Paths.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.utils + +import org.gradle.util.Path + +tailrec fun Path.topRealPath(): Path { + val parent = parent + parent?.parent ?: return this + + return parent.topRealPath() +} \ No newline at end of file