diff --git a/buildSrc/src/main/kotlin/dokka-publish.gradle.kts b/buildSrc/src/main/kotlin/dokka-publish.gradle.kts index b816a5c4..b7b48fb6 100644 --- a/buildSrc/src/main/kotlin/dokka-publish.gradle.kts +++ b/buildSrc/src/main/kotlin/dokka-publish.gradle.kts @@ -1,15 +1,15 @@ import org.jetbrains.dokka.gradle.DokkaTask +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin plugins { id("org.jetbrains.dokka") `maven-publish` } -plugins.withType(KotlinMultiplatformPlugin::class){ - configure{ +afterEvaluate { + + extensions.findByType()?.apply{ val dokka by tasks.getting(DokkaTask::class) { outputFormat = "html" outputDirectory = "$buildDir/javadoc" @@ -33,42 +33,43 @@ plugins.withType(KotlinMultiplatformPlugin::class){ } } - val javadocJar by tasks.registering(Jar::class) { + val kdocJar by tasks.registering(Jar::class) { group = JavaBasePlugin.DOCUMENTATION_GROUP dependsOn(dokka) archiveClassifier.set("javadoc") from("$buildDir/javadoc") } - configure{ + configure { targets.all { val publication = publications.findByName(name) as MavenPublication // Patch publications with fake javadoc - publication.artifact(javadocJar.get()) + publication.artifact(kdocJar.get()) } } } -} -plugins.withType(KotlinPlatformJvmPlugin::class){ - val dokka by tasks.getting(DokkaTask::class) { - outputFormat = "html" - outputDirectory = "$buildDir/javadoc" - jdkVersion = 8 - } - val javadocJar by tasks.registering(Jar::class) { - group = JavaBasePlugin.DOCUMENTATION_GROUP - dependsOn(dokka) - archiveClassifier.set("javadoc") - from("$buildDir/javadoc") - } + extensions.findByType()?.apply{ + val dokka by tasks.getting(DokkaTask::class) { + outputFormat = "html" + outputDirectory = "$buildDir/javadoc" + jdkVersion = 8 + } - configure{ - publications.filterIsInstance().forEach {publication -> - publication.artifact(javadocJar.get()) + val kdocJar by tasks.registering(Jar::class) { + group = JavaBasePlugin.DOCUMENTATION_GROUP + dependsOn(dokka) + archiveClassifier.set("javadoc") + from("$buildDir/javadoc") + } + + configure { + publications.filterIsInstance().forEach { publication -> + publication.artifact(kdocJar.get()) + } } } } \ No newline at end of file diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt index 1f9a3522..00fcec23 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt @@ -41,6 +41,6 @@ interface Configurable { fun T.configure(meta: Meta): T = this.apply { config.update(meta) } -fun T.configure(action: Config.() -> Unit): T = this.apply { config.apply(action) } +fun T.configure(action: MetaBuilder.() -> Unit): T = configure(buildMeta(action)) open class SimpleConfigurable(override val config: Config) : Configurable \ No newline at end of file