[Gradle][KPM] Implement KotlinCompilationOutputsJarArtifactConfigurator
This commit is contained in:
committed by
Space
parent
e8da9c007c
commit
032981dd83
-19
@@ -5,12 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||||
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.jvm.tasks.Jar
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
|
||||||
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
|
|
||||||
|
|
||||||
interface KotlinCompileTaskConfigurator<in T : KotlinGradleVariant> {
|
interface KotlinCompileTaskConfigurator<in T : KotlinGradleVariant> {
|
||||||
fun registerCompileTasks(variant: T): TaskProvider<*>
|
fun registerCompileTasks(variant: T): TaskProvider<*>
|
||||||
@@ -32,18 +27,4 @@ object KotlinNativeCompileTaskConfigurator : KotlinCompileTaskConfigurator<Kotli
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO NOW: Find place
|
|
||||||
object KotlinFragmentJarArtifactElementsConfigurator : KotlinFragmentConfigurationsConfigurator<KotlinGradleVariant> {
|
|
||||||
override fun configure(fragment: KotlinGradleVariant, configuration: Configuration) {
|
|
||||||
val project = fragment.project
|
|
||||||
val module = fragment.containingModule
|
|
||||||
val jarTaskName = fragment.disambiguateName("jar")
|
|
||||||
val jarTask = project.locateOrRegisterTask<Jar>(jarTaskName) {
|
|
||||||
it.from(fragment.compilationOutputs.allOutputs)
|
|
||||||
it.archiveClassifier.set(dashSeparatedName(fragment.name, module.moduleClassifier))
|
|
||||||
}
|
|
||||||
project.artifacts.add(configuration.name, jarTask)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -75,7 +75,7 @@ class KotlinJvmVariantConfigurator(
|
|||||||
DefaultKotlinRuntimeDependenciesConfigurator,
|
DefaultKotlinRuntimeDependenciesConfigurator,
|
||||||
|
|
||||||
private val apiElementsConfigurator: KotlinFragmentConfigurationsConfigurator<KotlinJvmVariant> =
|
private val apiElementsConfigurator: KotlinFragmentConfigurationsConfigurator<KotlinJvmVariant> =
|
||||||
DefaultKotlinApiElementsConfigurator,
|
DefaultKotlinApiElementsConfigurator + KotlinCompilationOutputsJarArtifactConfigurator,
|
||||||
|
|
||||||
private val runtimeElementsConfigurator: KotlinFragmentConfigurationsConfigurator<KotlinJvmVariant> =
|
private val runtimeElementsConfigurator: KotlinFragmentConfigurationsConfigurator<KotlinJvmVariant> =
|
||||||
DefaultKotlinRuntimeElementsConfigurator,
|
DefaultKotlinRuntimeElementsConfigurator,
|
||||||
|
|||||||
+17
@@ -9,9 +9,13 @@ import org.gradle.api.NamedDomainObjectProvider
|
|||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.attributes.Bundling
|
import org.gradle.api.attributes.Bundling
|
||||||
import org.gradle.api.attributes.Category
|
import org.gradle.api.attributes.Category
|
||||||
|
import org.gradle.jvm.tasks.Jar
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
|
||||||
|
|
||||||
interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
||||||
|
|
||||||
@@ -38,3 +42,16 @@ val DefaultKotlinApiElementsConfigurator = KotlinConfigurationsConfigurator(
|
|||||||
KotlinFragmentModuleCapabilityConfigurator,
|
KotlinFragmentModuleCapabilityConfigurator,
|
||||||
KotlinFragmentProducerApiUsageAttributesConfigurator
|
KotlinFragmentProducerApiUsageAttributesConfigurator
|
||||||
)
|
)
|
||||||
|
|
||||||
|
object KotlinCompilationOutputsJarArtifactConfigurator : KotlinFragmentConfigurationsConfigurator<KotlinGradleVariant> {
|
||||||
|
override fun configure(fragment: KotlinGradleVariant, configuration: Configuration) {
|
||||||
|
val project = fragment.project
|
||||||
|
val module = fragment.containingModule
|
||||||
|
val jarTaskName = fragment.disambiguateName("jar")
|
||||||
|
val jarTask = project.locateOrRegisterTask<Jar>(jarTaskName) {
|
||||||
|
it.from(fragment.compilationOutputs.allOutputs)
|
||||||
|
it.archiveClassifier.set(dashSeparatedName(fragment.name, module.moduleClassifier))
|
||||||
|
}
|
||||||
|
project.artifacts.add(configuration.name, jarTask)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user