Skip to content

Commit 6849804

Browse files
sellmairSpace Team
authored and
Space Team
committed
[Gradle] KotlinMetadataLibraryDirectories: Use composite build root for IDE directories
KT-49933
1 parent 61748f4 commit 6849804

File tree

7 files changed

+17
-13
lines changed

7 files changed

+17
-13
lines changed

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKpmMetadataBinaryDependencyResolver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ internal class IdeaKpmMetadataBinaryDependencyResolver(
4444
val sourceSetContent = artifactContent.findSourceSet(visibleFragmentName) ?: return@mapNotNull null
4545
val metadataBinary = sourceSetContent.metadataBinary ?: return@mapNotNull null
4646

47-
val libraryFile = fragment.project.layout.kotlinTransformedMetadataLibraryDirectoryForIde
47+
val libraryFile = fragment.project.kotlinTransformedMetadataLibraryDirectoryForIde
4848
.resolve(metadataBinary.relativeFile)
4949
.apply { if (!isFile) metadataBinary.copyTo(this) }
5050

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeTransformedMetadataDependencyResolver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ internal object IdeTransformedMetadataDependencyResolver : IdeDependencyResolver
3030
val sourceSetContent = artifactContent.findSourceSet(visibleSourceSet) ?: return@mapNotNull null
3131
val sourceSetMetadataBinary = sourceSetContent.metadataBinary ?: return@mapNotNull null
3232

33-
val metadataLibraryOutputFile = sourceSet.internal.project.layout.kotlinTransformedMetadataLibraryDirectoryForIde
33+
val metadataLibraryOutputFile = sourceSet.internal.project.kotlinTransformedMetadataLibraryDirectoryForIde
3434
.resolve(sourceSetMetadataBinary.relativeFile)
3535

3636
metadataLibraryOutputFile.parentFile.mkdirs()

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataLibraryDirectories.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66
package org.jetbrains.kotlin.gradle.plugin.mpp
77

8+
import org.gradle.api.Project
89
import org.gradle.api.file.ProjectLayout
10+
import org.jetbrains.kotlin.gradle.utils.compositeBuildRootProject
911
import java.io.File
1012

1113
private const val kotlinTransformedMetadataLibraries = "kotlinTransformedMetadataLibraries"
@@ -14,11 +16,11 @@ private const val kotlinTransformedCInteropMetadataLibraries = "kotlinTransforme
1416
internal fun ProjectLayout.kotlinTransformedMetadataLibraryDirectoryForBuild(sourceSetName: String): File =
1517
buildDirectory.get().asFile.resolve(kotlinTransformedMetadataLibraries).resolve(sourceSetName)
1618

17-
internal val ProjectLayout.kotlinTransformedMetadataLibraryDirectoryForIde: File
18-
get() = projectDirectory.asFile.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedMetadataLibraries)
19+
internal val Project.kotlinTransformedMetadataLibraryDirectoryForIde: File
20+
get() = compositeBuildRootProject.rootDir.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedMetadataLibraries)
1921

2022
internal fun ProjectLayout.kotlinTransformedCInteropMetadataLibraryDirectoryForBuild(sourceSetName: String): File =
2123
buildDirectory.get().asFile.resolve(kotlinTransformedCInteropMetadataLibraries).resolve(sourceSetName)
2224

23-
internal val ProjectLayout.kotlinTransformedCInteropMetadataLibraryDirectoryForIde: File
24-
get() = projectDirectory.asFile.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedCInteropMetadataLibraries)
25+
internal val Project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde: File
26+
get() = compositeBuildRootProject.rootDir.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedCInteropMetadataLibraries)

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinProjectStructureMetadata.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.gradle.targets.metadata.dependsOnClosureWithInterCom
2222
import org.jetbrains.kotlin.gradle.targets.metadata.getPublishedPlatformCompilations
2323
import org.jetbrains.kotlin.gradle.targets.metadata.isNativeSourceSet
2424
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerCompositeMetadataJarBundling.cinteropMetadataDirectoryPath
25+
import org.jetbrains.kotlin.gradle.utils.compositeBuildRootProject
2526
import org.jetbrains.kotlin.gradle.utils.getOrPut
2627
import org.w3c.dom.Document
2728
import org.w3c.dom.Element
@@ -415,14 +416,14 @@ internal object GlobalProjectStructureMetadataStorage {
415416
fun propertyName(buildName: String, projectPath: String) = "$propertyPrefix.$buildName.path.$projectPath"
416417

417418
fun registerProjectStructureMetadata(project: Project, metadataProvider: () -> KotlinProjectStructureMetadata) {
418-
project.compositeBuildRoot.extensions.extraProperties.set(
419+
project.compositeBuildRootProject.extensions.extraProperties.set(
419420
propertyName(project.rootProject.name, project.path),
420421
{ metadataProvider().toJson() }
421422
)
422423
}
423424

424425
fun getProjectStructureMetadataProvidersFromAllGradleBuilds(project: Project): Map<ProjectPathWithBuildName, Lazy<KotlinProjectStructureMetadata?>> {
425-
return project.compositeBuildRoot.extensions.extraProperties.properties
426+
return project.compositeBuildRootProject.extensions.extraProperties.properties
426427
.filterKeys { it.startsWith(propertyPrefix) }
427428
.entries
428429
.associate { (propertyName, propertyValue) ->
@@ -433,8 +434,6 @@ internal object GlobalProjectStructureMetadataStorage {
433434
}
434435
}
435436

436-
private val Project.compositeBuildRoot: Project get() = generateSequence(project.gradle) { it.parent }.last().rootProject
437-
438437
private fun Any.getProjectStructureMetadataOrNull(): KotlinProjectStructureMetadata? {
439438
val jsonStringProvider = this as? Function0<*> ?: return null
440439
val jsonString = jsonStringProvider.invoke() as? String ?: return null

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/transformMetadataLibraries.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ internal fun Project.transformMetadataLibrariesForIde(
2727
}
2828

2929
is ArtifactMetadataProvider -> transformMetadataLibrariesForIde(
30-
layout.kotlinTransformedMetadataLibraryDirectoryForIde, resolution, metadataProvider
30+
kotlinTransformedMetadataLibraryDirectoryForIde, resolution, metadataProvider
3131
)
3232
}
3333
}

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ internal fun Project.locateOrRegisterCInteropMetadataDependencyTransformationTas
7979
args = listOf(
8080
sourceSet,
8181
/* outputDirectory = */
82-
project.layout.kotlinTransformedCInteropMetadataLibraryDirectoryForIde,
82+
project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde,
8383
/* cleaning = */
8484
CInteropMetadataDependencyTransformationTask.Cleaning.None
8585
),

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/gradleUtils.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55

66
package org.jetbrains.kotlin.gradle.utils
77

8+
import org.gradle.api.Project
89
import org.gradle.api.invocation.Gradle
910

1011
val Gradle.projectCacheDir
11-
get() = startParameter.projectCacheDir ?: this.rootProject.projectDir.resolve(".gradle")
12+
get() = startParameter.projectCacheDir ?: this.rootProject.projectDir.resolve(".gradle")
13+
14+
internal val Project.compositeBuildRootProject: Project get() = generateSequence(project.gradle) { it.parent }.last().rootProject

0 commit comments

Comments
 (0)