[Gradle][Minor] Remove Project receiver from .getCommonizerTarget functions
KT-55238
This commit is contained in:
committed by
Space Team
parent
f8919533dc
commit
c1b1737cf0
+1
-2
@@ -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)
|
||||
|
||||
+3
-3
@@ -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 }
|
||||
|
||||
+1
-3
@@ -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) }
|
||||
}
|
||||
|
||||
+2
-2
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -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)
|
||||
}
|
||||
|
||||
+2
-3
@@ -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
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 ->
|
||||
|
||||
+7
-4
@@ -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()
|
||||
}
|
||||
|
||||
+44
-44
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user