diff --git a/core/src/main/kotlin/configuration.kt b/core/src/main/kotlin/configuration.kt index f298a5d415..038a5bb777 100644 --- a/core/src/main/kotlin/configuration.kt +++ b/core/src/main/kotlin/configuration.kt @@ -3,6 +3,7 @@ package org.jetbrains.dokka import org.jetbrains.dokka.plugability.ConfigurableBlock +import org.jetbrains.dokka.utilities.cast import org.jetbrains.dokka.utilities.parseJson import org.jetbrains.dokka.utilities.toJsonString import java.io.File @@ -100,6 +101,20 @@ data class GlobalDokkaConfiguration( fun GlobalDokkaConfiguration(json: String): GlobalDokkaConfiguration = parseJson(json) +fun DokkaConfiguration.apply(globals: GlobalDokkaConfiguration): DokkaConfiguration = this.apply { + sourceSets.forEach { + it.perPackageOptions.cast>().addAll(globals.perPackageOptions ?: emptyList()) + } + + sourceSets.forEach { + it.externalDocumentationLinks.cast>().addAll(globals.externalDocumentationLinks ?: emptyList()) + } + + sourceSets.forEach { + it.sourceLinks.cast>().addAll(globals.sourceLinks ?: emptyList()) + } +} + fun DokkaConfiguration.toJsonString(): String = toJsonString(this) fun T.toJsonString(): String = toJsonString(this) diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt index b5e1d2a3fd..1dc32a45a5 100644 --- a/runners/cli/src/main/kotlin/cli/main.kt +++ b/runners/cli/src/main/kotlin/cli/main.kt @@ -408,19 +408,8 @@ fun initializeConfiguration(globalArguments: GlobalArguments): DokkaConfiguratio val jsonContent = Paths.get(checkNotNull(globalArguments.json)).toFile().readText() val globals = GlobalDokkaConfiguration(jsonContent) val dokkaConfigurationImpl = DokkaConfigurationImpl(jsonContent) - dokkaConfigurationImpl.apply { - sourceSets.forEach { - it.perPackageOptions.cast>().addAll(globals.perPackageOptions ?: emptyList()) - } - - sourceSets.forEach { - it.externalDocumentationLinks.cast>().addAll(globals.externalDocumentationLinks ?: emptyList()) - } - - sourceSets.forEach { - it.sourceLinks.cast>().addAll(globals.sourceLinks ?: emptyList()) - } + dokkaConfigurationImpl.apply(globals).apply { sourceSets.forEach { it.externalDocumentationLinks.cast>().addAll(defaultLinks(it)) }