diff options
author | Ilya Goncharov <ilya.goncharov@jetbrains.com> | 2022-07-21 10:57:57 +0200 |
---|---|---|
committer | Ilya Goncharov <ilgonmic@gmail.com> | 2022-07-21 16:51:56 +0300 |
commit | b40401ea459cf5cbc616e20d5b30281ad072dd72 (patch) | |
tree | 0ea259db8d742869d8b4136edf362d65b06c3535 | |
parent | c9fadaad76ac9485e9563562aa946e78f7374fe9 (diff) | |
download | kotlinx.atomicfu-b40401ea459cf5cbc616e20d5b30281ad072dd72.tar.gz |
Simplify withKotlinTargets
-rw-r--r-- | atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt b/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt index d91af4c..5c81462 100644 --- a/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt +++ b/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt @@ -188,11 +188,9 @@ fun Project.withPluginWhenEvaluatedDependencies(plugin: String, fn: Project.(ver fun Project.withKotlinTargets(fn: (KotlinTarget) -> Unit) { extensions.findByType(KotlinTargetsContainer::class.java)?.let { kotlinExtension -> - val targetsExtension = kotlinExtension.targets - @Suppress("UNCHECKED_CAST") - val targets = targetsExtension as? NamedDomainObjectContainer<KotlinTarget> // find all compilations given sourceSet belongs to - targets?.all { target -> fn(target) } + kotlinExtension.targets + .all { target -> fn(target) } } } @@ -269,22 +267,22 @@ private fun Project.configureTransformationForTarget(target: KotlinTarget) { Callable { originalDirsByCompilation[mainCompilation]!! } ) - // KGP >= 1.7.0 has breaking changes in task hierarchy: - // https://youtrack.jetbrains.com/issue/KT-32805#focus=Comments-27-5915479.0-0 - val (majorVersion, minorVersion) = getKotlinPluginVersion() - .split('.') - .take(2) - .map { it.toInt() } - if (majorVersion == 1 && minorVersion < 7) { - (tasks.findByName(compilation.compileKotlinTaskName) as? AbstractCompile)?.classpath = + // KGP >= 1.7.0 has breaking changes in task hierarchy: + // https://youtrack.jetbrains.com/issue/KT-32805#focus=Comments-27-5915479.0-0 + val (majorVersion, minorVersion) = getKotlinPluginVersion() + .split('.') + .take(2) + .map { it.toInt() } + if (majorVersion == 1 && minorVersion < 7) { + (tasks.findByName(compilation.compileKotlinTaskName) as? AbstractCompile)?.classpath = + originalMainClassesDirs + compilation.compileDependencyFiles - mainCompilation.output.classesDirs + } else { + (tasks.findByName(compilation.compileKotlinTaskName) as? AbstractKotlinCompileTool<*>) + ?.libraries + ?.setFrom( originalMainClassesDirs + compilation.compileDependencyFiles - mainCompilation.output.classesDirs - } else { - (tasks.findByName(compilation.compileKotlinTaskName) as? AbstractKotlinCompileTool<*>) - ?.libraries - ?.setFrom( - originalMainClassesDirs + compilation.compileDependencyFiles - mainCompilation.output.classesDirs - ) - } + ) + } (tasks.findByName("${target.name}${compilation.name.capitalize()}") as? Test)?.classpath = originalMainClassesDirs + (compilation as KotlinCompilationToRunnableFiles).runtimeDependencyFiles - mainCompilation.output.classesDirs @@ -313,13 +311,13 @@ fun Project.configureMultiplatformPluginDependencies(version: String) { if (rootProject.getBooleanProperty("kotlin.mpp.enableGranularSourceSetsMetadata")) { addCompilerPluginDependency() val mainConfigurationName = project.extensions.getByType(KotlinMultiplatformExtension::class.java).sourceSets - .getByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME) - .compileOnlyConfigurationName + .getByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME) + .compileOnlyConfigurationName dependencies.add(mainConfigurationName, getAtomicfuDependencyNotation(Platform.MULTIPLATFORM, version)) val testConfigurationName = project.extensions.getByType(KotlinMultiplatformExtension::class.java).sourceSets - .getByName(KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME) - .implementationConfigurationName + .getByName(KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME) + .implementationConfigurationName dependencies.add(testConfigurationName, getAtomicfuDependencyNotation(Platform.MULTIPLATFORM, version)) // For each source set that is only used in Native compilations, add an implementation dependency so that it @@ -341,15 +339,15 @@ fun Project.configureMultiplatformPluginDependencies(version: String) { if (compilationNames.size != 1) error("Source set '${sourceSet.name}' of project '$name' is part of several compilations $compilationNames") val compilationType = compilationNames.single().compilationNameToType() - ?: return@forEach // skip unknown compilations + ?: return@forEach // skip unknown compilations val platform = - if (platformTypes.size > 1) Platform.MULTIPLATFORM else // mix of platform types -> "common" - when (platformTypes.single()) { - KotlinPlatformType.common -> Platform.MULTIPLATFORM - KotlinPlatformType.jvm, KotlinPlatformType.androidJvm -> Platform.JVM - KotlinPlatformType.js -> Platform.JS - KotlinPlatformType.native, KotlinPlatformType.wasm -> Platform.NATIVE - } + if (platformTypes.size > 1) Platform.MULTIPLATFORM else // mix of platform types -> "common" + when (platformTypes.single()) { + KotlinPlatformType.common -> Platform.MULTIPLATFORM + KotlinPlatformType.jvm, KotlinPlatformType.androidJvm -> Platform.JVM + KotlinPlatformType.js -> Platform.JS + KotlinPlatformType.native, KotlinPlatformType.wasm -> Platform.NATIVE + } val configurationName = when { // impl dependency for native (there is no transformation) platform == Platform.NATIVE -> sourceSet.implementationConfigurationName @@ -489,6 +487,7 @@ open class AtomicFUTransformTask : ConventionTask() { @Input var jvmVariant = "FU" + @Input var verbose = false @@ -513,6 +512,7 @@ open class AtomicFUTransformJsTask : ConventionTask() { @OutputDirectory lateinit var outputDir: File + @Input var verbose = false |