[Gradle] KotlinMetadataLibraryDirectories: Use composite build root for IDE directories
KT-49933
This commit is contained in:
committed by
Space Team
parent
61748f4016
commit
6849804941
+1
-1
@@ -44,7 +44,7 @@ internal class IdeaKpmMetadataBinaryDependencyResolver(
|
|||||||
val sourceSetContent = artifactContent.findSourceSet(visibleFragmentName) ?: return@mapNotNull null
|
val sourceSetContent = artifactContent.findSourceSet(visibleFragmentName) ?: return@mapNotNull null
|
||||||
val metadataBinary = sourceSetContent.metadataBinary ?: return@mapNotNull null
|
val metadataBinary = sourceSetContent.metadataBinary ?: return@mapNotNull null
|
||||||
|
|
||||||
val libraryFile = fragment.project.layout.kotlinTransformedMetadataLibraryDirectoryForIde
|
val libraryFile = fragment.project.kotlinTransformedMetadataLibraryDirectoryForIde
|
||||||
.resolve(metadataBinary.relativeFile)
|
.resolve(metadataBinary.relativeFile)
|
||||||
.apply { if (!isFile) metadataBinary.copyTo(this) }
|
.apply { if (!isFile) metadataBinary.copyTo(this) }
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@ internal object IdeTransformedMetadataDependencyResolver : IdeDependencyResolver
|
|||||||
val sourceSetContent = artifactContent.findSourceSet(visibleSourceSet) ?: return@mapNotNull null
|
val sourceSetContent = artifactContent.findSourceSet(visibleSourceSet) ?: return@mapNotNull null
|
||||||
val sourceSetMetadataBinary = sourceSetContent.metadataBinary ?: return@mapNotNull null
|
val sourceSetMetadataBinary = sourceSetContent.metadataBinary ?: return@mapNotNull null
|
||||||
|
|
||||||
val metadataLibraryOutputFile = sourceSet.internal.project.layout.kotlinTransformedMetadataLibraryDirectoryForIde
|
val metadataLibraryOutputFile = sourceSet.internal.project.kotlinTransformedMetadataLibraryDirectoryForIde
|
||||||
.resolve(sourceSetMetadataBinary.relativeFile)
|
.resolve(sourceSetMetadataBinary.relativeFile)
|
||||||
|
|
||||||
metadataLibraryOutputFile.parentFile.mkdirs()
|
metadataLibraryOutputFile.parentFile.mkdirs()
|
||||||
|
|||||||
+6
-4
@@ -5,7 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.file.ProjectLayout
|
import org.gradle.api.file.ProjectLayout
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.compositeBuildRootProject
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
private const val kotlinTransformedMetadataLibraries = "kotlinTransformedMetadataLibraries"
|
private const val kotlinTransformedMetadataLibraries = "kotlinTransformedMetadataLibraries"
|
||||||
@@ -14,11 +16,11 @@ private const val kotlinTransformedCInteropMetadataLibraries = "kotlinTransforme
|
|||||||
internal fun ProjectLayout.kotlinTransformedMetadataLibraryDirectoryForBuild(sourceSetName: String): File =
|
internal fun ProjectLayout.kotlinTransformedMetadataLibraryDirectoryForBuild(sourceSetName: String): File =
|
||||||
buildDirectory.get().asFile.resolve(kotlinTransformedMetadataLibraries).resolve(sourceSetName)
|
buildDirectory.get().asFile.resolve(kotlinTransformedMetadataLibraries).resolve(sourceSetName)
|
||||||
|
|
||||||
internal val ProjectLayout.kotlinTransformedMetadataLibraryDirectoryForIde: File
|
internal val Project.kotlinTransformedMetadataLibraryDirectoryForIde: File
|
||||||
get() = projectDirectory.asFile.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedMetadataLibraries)
|
get() = compositeBuildRootProject.rootDir.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedMetadataLibraries)
|
||||||
|
|
||||||
internal fun ProjectLayout.kotlinTransformedCInteropMetadataLibraryDirectoryForBuild(sourceSetName: String): File =
|
internal fun ProjectLayout.kotlinTransformedCInteropMetadataLibraryDirectoryForBuild(sourceSetName: String): File =
|
||||||
buildDirectory.get().asFile.resolve(kotlinTransformedCInteropMetadataLibraries).resolve(sourceSetName)
|
buildDirectory.get().asFile.resolve(kotlinTransformedCInteropMetadataLibraries).resolve(sourceSetName)
|
||||||
|
|
||||||
internal val ProjectLayout.kotlinTransformedCInteropMetadataLibraryDirectoryForIde: File
|
internal val Project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde: File
|
||||||
get() = projectDirectory.asFile.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedCInteropMetadataLibraries)
|
get() = compositeBuildRootProject.rootDir.resolve(".gradle").resolve("kotlin").resolve(kotlinTransformedCInteropMetadataLibraries)
|
||||||
|
|||||||
+3
-4
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.gradle.targets.metadata.dependsOnClosureWithInterCom
|
|||||||
import org.jetbrains.kotlin.gradle.targets.metadata.getPublishedPlatformCompilations
|
import org.jetbrains.kotlin.gradle.targets.metadata.getPublishedPlatformCompilations
|
||||||
import org.jetbrains.kotlin.gradle.targets.metadata.isNativeSourceSet
|
import org.jetbrains.kotlin.gradle.targets.metadata.isNativeSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerCompositeMetadataJarBundling.cinteropMetadataDirectoryPath
|
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerCompositeMetadataJarBundling.cinteropMetadataDirectoryPath
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.compositeBuildRootProject
|
||||||
import org.jetbrains.kotlin.gradle.utils.getOrPut
|
import org.jetbrains.kotlin.gradle.utils.getOrPut
|
||||||
import org.w3c.dom.Document
|
import org.w3c.dom.Document
|
||||||
import org.w3c.dom.Element
|
import org.w3c.dom.Element
|
||||||
@@ -415,14 +416,14 @@ internal object GlobalProjectStructureMetadataStorage {
|
|||||||
fun propertyName(buildName: String, projectPath: String) = "$propertyPrefix.$buildName.path.$projectPath"
|
fun propertyName(buildName: String, projectPath: String) = "$propertyPrefix.$buildName.path.$projectPath"
|
||||||
|
|
||||||
fun registerProjectStructureMetadata(project: Project, metadataProvider: () -> KotlinProjectStructureMetadata) {
|
fun registerProjectStructureMetadata(project: Project, metadataProvider: () -> KotlinProjectStructureMetadata) {
|
||||||
project.compositeBuildRoot.extensions.extraProperties.set(
|
project.compositeBuildRootProject.extensions.extraProperties.set(
|
||||||
propertyName(project.rootProject.name, project.path),
|
propertyName(project.rootProject.name, project.path),
|
||||||
{ metadataProvider().toJson() }
|
{ metadataProvider().toJson() }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getProjectStructureMetadataProvidersFromAllGradleBuilds(project: Project): Map<ProjectPathWithBuildName, Lazy<KotlinProjectStructureMetadata?>> {
|
fun getProjectStructureMetadataProvidersFromAllGradleBuilds(project: Project): Map<ProjectPathWithBuildName, Lazy<KotlinProjectStructureMetadata?>> {
|
||||||
return project.compositeBuildRoot.extensions.extraProperties.properties
|
return project.compositeBuildRootProject.extensions.extraProperties.properties
|
||||||
.filterKeys { it.startsWith(propertyPrefix) }
|
.filterKeys { it.startsWith(propertyPrefix) }
|
||||||
.entries
|
.entries
|
||||||
.associate { (propertyName, propertyValue) ->
|
.associate { (propertyName, propertyValue) ->
|
||||||
@@ -433,8 +434,6 @@ internal object GlobalProjectStructureMetadataStorage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val Project.compositeBuildRoot: Project get() = generateSequence(project.gradle) { it.parent }.last().rootProject
|
|
||||||
|
|
||||||
private fun Any.getProjectStructureMetadataOrNull(): KotlinProjectStructureMetadata? {
|
private fun Any.getProjectStructureMetadataOrNull(): KotlinProjectStructureMetadata? {
|
||||||
val jsonStringProvider = this as? Function0<*> ?: return null
|
val jsonStringProvider = this as? Function0<*> ?: return null
|
||||||
val jsonString = jsonStringProvider.invoke() as? String ?: return null
|
val jsonString = jsonStringProvider.invoke() as? String ?: return null
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ internal fun Project.transformMetadataLibrariesForIde(
|
|||||||
}
|
}
|
||||||
|
|
||||||
is ArtifactMetadataProvider -> transformMetadataLibrariesForIde(
|
is ArtifactMetadataProvider -> transformMetadataLibrariesForIde(
|
||||||
layout.kotlinTransformedMetadataLibraryDirectoryForIde, resolution, metadataProvider
|
kotlinTransformedMetadataLibraryDirectoryForIde, resolution, metadataProvider
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -79,7 +79,7 @@ internal fun Project.locateOrRegisterCInteropMetadataDependencyTransformationTas
|
|||||||
args = listOf(
|
args = listOf(
|
||||||
sourceSet,
|
sourceSet,
|
||||||
/* outputDirectory = */
|
/* outputDirectory = */
|
||||||
project.layout.kotlinTransformedCInteropMetadataLibraryDirectoryForIde,
|
project.kotlinTransformedCInteropMetadataLibraryDirectoryForIde,
|
||||||
/* cleaning = */
|
/* cleaning = */
|
||||||
CInteropMetadataDependencyTransformationTask.Cleaning.None
|
CInteropMetadataDependencyTransformationTask.Cleaning.None
|
||||||
),
|
),
|
||||||
|
|||||||
+3
@@ -5,7 +5,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.utils
|
package org.jetbrains.kotlin.gradle.utils
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.invocation.Gradle
|
import org.gradle.api.invocation.Gradle
|
||||||
|
|
||||||
val Gradle.projectCacheDir
|
val Gradle.projectCacheDir
|
||||||
get() = startParameter.projectCacheDir ?: this.rootProject.projectDir.resolve(".gradle")
|
get() = startParameter.projectCacheDir ?: this.rootProject.projectDir.resolve(".gradle")
|
||||||
|
|
||||||
|
internal val Project.compositeBuildRootProject: Project get() = generateSequence(project.gradle) { it.parent }.last().rootProject
|
||||||
|
|||||||
Reference in New Issue
Block a user