[Gradle][Minor] Remove Project receiver from .getCommonizerTarget functions

KT-55238
This commit is contained in:
Sebastian Sellmair
2022-12-02 13:19:48 +01:00
committed by Space Team
parent f8919533dc
commit c1b1737cf0
9 changed files with 62 additions and 64 deletions
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.compilerRunner.konanVersion
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCoordinates
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinResolvedBinaryDependency
import org.jetbrains.kotlin.gradle.idea.tcs.extras.isIdeaProjectLevel
import org.jetbrains.kotlin.gradle.idea.tcs.extras.isNativeDistribution
import org.jetbrains.kotlin.gradle.idea.tcs.extras.klibExtra
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
@@ -28,7 +27,7 @@ import java.io.File
object IdeNativePlatformDependencyResolver : IdeDependencyResolver {
override fun resolve(sourceSet: KotlinSourceSet): Set<IdeaKotlinDependency> {
val commonizerTarget = sourceSet.project.getCommonizerTarget(sourceSet) as? LeafCommonizerTarget ?: return emptySet()
val commonizerTarget = getCommonizerTarget(sourceSet) as? LeafCommonizerTarget ?: return emptySet()
val konanTarget = commonizerTarget.konanTargetOrNull ?: return emptySet()
return sourceSet.project.konanDistribution.platformLibsDir.resolve(konanTarget.name)
@@ -75,14 +75,14 @@ internal fun CInteropCommonizerDependent.Factory.from(
internal fun CInteropCommonizerDependent.Factory.from(compilation: KotlinSharedNativeCompilation): CInteropCommonizerDependent? {
return from(
compilation.project.getCommonizerTarget(compilation) as? SharedCommonizerTarget ?: return null,
getCommonizerTarget(compilation) as? SharedCommonizerTarget ?: return null,
compilation.getImplicitlyDependingNativeCompilations()
)
}
internal fun CInteropCommonizerDependent.Factory.from(project: Project, sourceSet: KotlinSourceSet): CInteropCommonizerDependent? {
return from(
target = project.getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null,
target = getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null,
compilations = sourceSet.internal.compilations
.filterIsInstance<KotlinNativeCompilation>().toSet()
)
@@ -92,7 +92,7 @@ internal fun CInteropCommonizerDependent.Factory.fromAssociateCompilations(
project: Project, sourceSet: KotlinSourceSet
): CInteropCommonizerDependent? {
return from(
target = project.getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null,
target = getCommonizerTarget(sourceSet) as? SharedCommonizerTarget ?: return null,
compilations = sourceSet.internal.compilations
.filterIsInstance<KotlinNativeCompilation>()
.flatMap { compilation -> compilation.associateWithClosure }
@@ -128,9 +128,7 @@ internal open class CInteropCommonizerTask
private val groupedCommonizerDependencies: Map<CInteropCommonizerGroup, List<CInteropCommonizerDependencies>> by lazy {
val multiplatformExtension = project.multiplatformExtensionOrNull ?: return@lazy emptyMap()
val sourceSetsByTarget = multiplatformExtension.sourceSets.groupBy { sourceSet ->
project.getCommonizerTarget(sourceSet)
}
val sourceSetsByTarget = multiplatformExtension.sourceSets.groupBy { sourceSet -> getCommonizerTarget(sourceSet) }
val sourceSetsByGroup = multiplatformExtension.sourceSets.groupBy { sourceSet ->
CInteropCommonizerDependent.from(project, sourceSet)?.let { findInteropsGroup(it) }
}
@@ -101,7 +101,7 @@ private fun CInteropMetadataDependencyTransformationTask.configureTaskOrder() {
}
private fun CInteropMetadataDependencyTransformationTask.onlyIfSourceSetIsSharedNative() {
onlyIf { project.getCommonizerTarget(sourceSet) is SharedCommonizerTarget }
onlyIf { getCommonizerTarget(sourceSet) is SharedCommonizerTarget }
}
internal open class CInteropMetadataDependencyTransformationTask @Inject constructor(
@@ -203,7 +203,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
@TaskAction
protected fun transformDependencies() {
cleaning.cleanOutputDirectory(outputDirectory)
if (project.getCommonizerTarget(sourceSet) !is SharedCommonizerTarget) return
if (getCommonizerTarget(sourceSet) !is SharedCommonizerTarget) return
chooseVisibleSourceSets.forEach(::materializeMetadata)
}
@@ -5,14 +5,13 @@
package org.jetbrains.kotlin.gradle.targets.native.internal
import org.gradle.api.Project
import org.jetbrains.kotlin.commonizer.CommonizerTarget
import org.jetbrains.kotlin.commonizer.LeafCommonizerTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation
internal fun Project.getCommonizerTarget(compilation: KotlinCompilation<*>): CommonizerTarget? {
internal fun getCommonizerTarget(compilation: KotlinCompilation<*>): CommonizerTarget? {
if (compilation is KotlinNativeCompilation) {
return LeafCommonizerTarget(compilation.konanTarget)
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.gradle.targets.native.internal
import org.gradle.api.Project
import org.jetbrains.kotlin.commonizer.CommonizerTarget
import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
import org.jetbrains.kotlin.commonizer.allLeaves
@@ -13,7 +12,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataCompilation
import org.jetbrains.kotlin.gradle.plugin.sources.internal
internal fun Project.getCommonizerTarget(sourceSet: KotlinSourceSet): CommonizerTarget? {
internal fun getCommonizerTarget(sourceSet: KotlinSourceSet): CommonizerTarget? {
val allCompilationLeafTargets = sourceSet.internal.compilations
.filter { compilation -> compilation !is KotlinMetadataCompilation }
.map { compilation -> getCommonizerTarget(compilation) ?: return null }
@@ -26,6 +25,6 @@ internal fun Project.getCommonizerTarget(sourceSet: KotlinSourceSet): Commonizer
}
}
internal fun Project.getSharedCommonizerTarget(sourceSet: KotlinSourceSet): SharedCommonizerTarget? {
internal fun getSharedCommonizerTarget(sourceSet: KotlinSourceSet): SharedCommonizerTarget? {
return getCommonizerTarget(sourceSet) as? SharedCommonizerTarget
}
@@ -67,7 +67,7 @@ internal fun Project.getNativeDistributionDependencies(target: CommonizerTarget)
internal val KotlinMultiplatformExtension.nativeRootSourceSets: Collection<KotlinSourceSet>
get() {
val nativeSourceSets = sourceSets.filter { sourceSet -> project.getCommonizerTarget(sourceSet) != null }
val nativeSourceSets = sourceSets.filter { sourceSet -> getCommonizerTarget(sourceSet) != null }
return nativeSourceSets.filter { sourceSet ->
val allVisibleSourceSets = sourceSet.dependsOn + getVisibleSourceSetsFromAssociateCompilations(sourceSet)
allVisibleSourceSets.none { dependency ->
@@ -12,18 +12,21 @@ import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.*
import org.gradle.api.tasks.Classpath
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.TaskAction
import org.gradle.process.ExecOperations
import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
import org.jetbrains.kotlin.compilerRunner.*
import org.jetbrains.kotlin.compilerRunner.GradleCliCommonizer
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCommonizerToolRunner
import org.jetbrains.kotlin.compilerRunner.KotlinToolRunner
import org.jetbrains.kotlin.compilerRunner.konanHome
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
import org.jetbrains.kotlin.gradle.utils.*
import org.jetbrains.kotlin.gradle.utils.chainedFinalizeValueOnRead
import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.property
import org.jetbrains.kotlin.konan.library.KONAN_DISTRIBUTION_COMMONIZED_LIBS_DIR
import org.jetbrains.kotlin.konan.library.KONAN_DISTRIBUTION_KLIB_DIR
@@ -113,7 +116,7 @@ private fun Project.collectAllSharedCommonizerTargetsFromBuild(): Set<SharedComm
private fun Project.collectAllSharedCommonizerTargetsFromProject(): Set<SharedCommonizerTarget> {
return (project.multiplatformExtensionOrNull ?: return emptySet()).sourceSets
.mapNotNull { sourceSet -> project.getCommonizerTarget(sourceSet) }
.mapNotNull { sourceSet -> getCommonizerTarget(sourceSet) }
.filterIsInstance<SharedCommonizerTarget>()
.toSet()
}
@@ -49,12 +49,12 @@ class SourceSetCommonizerTargetTest {
val linuxTest = kotlin.sourceSets.getByName("linuxTest")
val macosTest = kotlin.sourceSets.getByName("macosTest")
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosTest))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), project.getCommonizerTarget(commonMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), project.getCommonizerTarget(commonTest))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosTest))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), getCommonizerTarget(commonMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), getCommonizerTarget(commonTest))
}
@Test
@@ -74,14 +74,14 @@ class SourceSetCommonizerTargetTest {
linuxMain.dependsOn(nativeMain)
macosMain.dependsOn(nativeMain)
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosTest))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosTest))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), project.getCommonizerTarget(nativeMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), project.getCommonizerTarget(commonMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), project.getCommonizerTarget(commonTest))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), getCommonizerTarget(nativeMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), getCommonizerTarget(commonMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), getCommonizerTarget(commonTest))
}
@Test
@@ -101,14 +101,14 @@ class SourceSetCommonizerTargetTest {
linuxAMain.dependsOn(nativeMain)
linuxBMain.dependsOn(nativeMain)
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxAMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxATest))
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxBMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxBTest))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(linuxAMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(linuxATest))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(linuxBMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(linuxBTest))
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(nativeMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(commonMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), project.getCommonizerTarget(commonTest))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(nativeMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(commonMain))
assertEquals(LeafCommonizerTarget(LINUX_X64), getCommonizerTarget(commonTest))
}
@Test
@@ -138,28 +138,28 @@ class SourceSetCommonizerTargetTest {
iosX64Main.dependsOn(iosMain)
iosArm64Main.dependsOn(iosMain)
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosTest))
assertEquals(CommonizerTarget(IOS_X64), project.getCommonizerTarget(iosX64Test))
assertEquals(CommonizerTarget(IOS_X64), project.getCommonizerTarget(iosX64Test))
assertEquals(CommonizerTarget(IOS_ARM64), project.getCommonizerTarget(iosArm64Main))
assertEquals(CommonizerTarget(IOS_ARM64), project.getCommonizerTarget(iosArm64Test))
assertEquals(CommonizerTarget(IOS_X64, IOS_ARM64), project.getCommonizerTarget(iosMain))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosTest))
assertEquals(CommonizerTarget(IOS_X64), getCommonizerTarget(iosX64Test))
assertEquals(CommonizerTarget(IOS_X64), getCommonizerTarget(iosX64Test))
assertEquals(CommonizerTarget(IOS_ARM64), getCommonizerTarget(iosArm64Main))
assertEquals(CommonizerTarget(IOS_ARM64), getCommonizerTarget(iosArm64Test))
assertEquals(CommonizerTarget(IOS_X64, IOS_ARM64), getCommonizerTarget(iosMain))
assertEquals(
CommonizerTarget(IOS_X64, IOS_ARM64, MACOS_X64, LINUX_X64),
project.getCommonizerTarget(nativeMain)
getCommonizerTarget(nativeMain)
)
assertEquals(
CommonizerTarget(IOS_X64, IOS_ARM64, MACOS_X64, LINUX_X64),
project.getCommonizerTarget(commonMain)
getCommonizerTarget(commonMain)
)
assertEquals(
CommonizerTarget(IOS_ARM64, IOS_X64, LINUX_X64, MACOS_X64),
project.getCommonizerTarget(commonTest)
getCommonizerTarget(commonTest)
)
}
@@ -183,17 +183,17 @@ class SourceSetCommonizerTargetTest {
linuxMain.dependsOn(nativeMain)
macosMain.dependsOn(nativeMain)
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), project.getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), project.getCommonizerTarget(macosTest))
assertNull(project.getCommonizerTarget(jvmMain), "Expected jvmMain to have no commonizer target")
assertNull(project.getCommonizerTarget(jvmTest), "Expected jvmTest to have no commonizer target")
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxMain))
assertEquals(CommonizerTarget(LINUX_X64), getCommonizerTarget(linuxTest))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosMain))
assertEquals(CommonizerTarget(MACOS_X64), getCommonizerTarget(macosTest))
assertNull(getCommonizerTarget(jvmMain), "Expected jvmMain to have no commonizer target")
assertNull(getCommonizerTarget(jvmTest), "Expected jvmTest to have no commonizer target")
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), project.getCommonizerTarget(nativeMain))
assertEquals(CommonizerTarget(LINUX_X64, MACOS_X64), getCommonizerTarget(nativeMain))
assertNull(project.getCommonizerTarget(commonMain), "Expected commonMain to have no commonizer target")
assertNull(project.getCommonizerTarget(commonTest), "Expected commonTest to have no commonizer target")
assertNull(getCommonizerTarget(commonMain), "Expected commonMain to have no commonizer target")
assertNull(getCommonizerTarget(commonTest), "Expected commonTest to have no commonizer target")
}
@Test
@@ -209,7 +209,7 @@ class SourceSetCommonizerTargetTest {
assertEquals(
SharedCommonizerTarget(setOf(linux1.konanTarget, linux2.konanTarget)),
project.getCommonizerTarget(nativeMain)
getCommonizerTarget(nativeMain)
)
}
@@ -226,7 +226,7 @@ class SourceSetCommonizerTargetTest {
linux2Main.dependsOn(nativeMain)
orphan.dependsOn(nativeMain)
assertEquals(CommonizerTarget(linux1.konanTarget, linux2.konanTarget), project.getCommonizerTarget(nativeMain))
assertEquals(CommonizerTarget(linux1.konanTarget, linux2.konanTarget), getCommonizerTarget(nativeMain))
}
@Test
@@ -238,6 +238,6 @@ class SourceSetCommonizerTargetTest {
orphan1.dependsOn(nativeMain)
orphan2.dependsOn(nativeMain)
assertEquals(null, project.getCommonizerTarget(nativeMain))
assertEquals(null, getCommonizerTarget(nativeMain))
}
}