[gradle][plugin] this patch adds pom entry to konan building config to re-evaluate it on each native publications
This commit is contained in:
+5
@@ -24,6 +24,7 @@ import org.gradle.api.Task
|
||||
import org.gradle.api.internal.DefaultNamedDomainObjectSet
|
||||
import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.publish.maven.MavenPom
|
||||
import org.gradle.internal.reflect.Instantiator
|
||||
import org.gradle.util.ConfigureUtil
|
||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
||||
@@ -46,6 +47,8 @@ abstract class KonanBuildingConfig<T: KonanBuildingTask>(private val name_: Stri
|
||||
|
||||
internal val aggregateBuildTask: Task
|
||||
|
||||
internal var pomActions = mutableListOf<Action<MavenPom>>()
|
||||
|
||||
private val konanTargets: Iterable<KonanTarget>
|
||||
get() = project.hostManager.toKonanTargets(targets).distinct()
|
||||
|
||||
@@ -187,4 +190,6 @@ abstract class KonanBuildingConfig<T: KonanBuildingTask>(private val name_: Stri
|
||||
target(targetString) { configureAction.execute(this) }
|
||||
fun target(targetString: String, configureAction: Closure<Unit>) =
|
||||
target(targetString, ConfigureUtil.configureUsing(configureAction))
|
||||
|
||||
fun pom(action: Action<MavenPom>) = pomActions + action
|
||||
}
|
||||
|
||||
+12
-9
@@ -27,9 +27,7 @@ import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.publish.PublishingExtension
|
||||
import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal
|
||||
import org.gradle.language.cpp.internal.NativeVariantIdentity
|
||||
import org.gradle.tooling.UnsupportedVersionException
|
||||
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.plugin.KonanPlugin.Companion.COMPILE_ALL_TASK_NAME
|
||||
@@ -358,8 +356,7 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
|
||||
if (!isPublicationEnabled)
|
||||
return@afterEvaluate
|
||||
project.pluginManager.withPlugin("maven-publish") {
|
||||
container.all {
|
||||
val buildingConfig = it
|
||||
container.all { buildingConfig ->
|
||||
val konanSoftwareComponent = buildingConfig.mainVariant
|
||||
project.extensions.configure(PublishingExtension::class.java) {
|
||||
val builtArtifact = buildingConfig.name
|
||||
@@ -369,18 +366,24 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
|
||||
groupId = project.group.toString()
|
||||
from(konanSoftwareComponent)
|
||||
}
|
||||
buildingConfig.pomActions.forEach {
|
||||
mavenPublication.pom(it)
|
||||
}
|
||||
}
|
||||
|
||||
project.extensions.configure(PublishingExtension::class.java) {
|
||||
val publishing = it
|
||||
for (v in konanSoftwareComponent.variants) {
|
||||
publishing.publications.create(v.name, MavenPublication::class.java) {
|
||||
publishing.publications.create(v.name, MavenPublication::class.java) { mavenPublication ->
|
||||
val coordinates = (v as NativeVariantIdentity).coordinates
|
||||
project.logger.info("variant with coordinates($coordinates) and module: ${coordinates.module}")
|
||||
it.artifactId = coordinates.module.name
|
||||
it.groupId = coordinates.group
|
||||
it.version = coordinates.version
|
||||
it.from(v)
|
||||
mavenPublication.artifactId = coordinates.module.name
|
||||
mavenPublication.groupId = coordinates.group
|
||||
mavenPublication.version = coordinates.version
|
||||
mavenPublication.from(v)
|
||||
buildingConfig.pomActions.forEach {
|
||||
mavenPublication.pom(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user