plugins { id "org.jetbrains.kotlin.multiplatform" id "org.jetbrains.kotlin.plugin.serialization" id "org.jetbrains.dokka" } project.description = "Full collection of all built-in tgbotapi tools" apply from: "$mppProjectWithSerialization" kotlin { sourceSets { commonMain { dependencies { api project(":tgbotapi.core") api project(":tgbotapi.api") api project(":tgbotapi.utils") api project(":tgbotapi.behaviour_builder") api project(":tgbotapi.behaviour_builder.fsm") api project(":tgbotapi") } } jsMain { dependencies { api project(":tgbotapi.webapps") } } } } private List findSourcesWithName(String... approximateNames) { return parent.subprojects .findAll { it != project && it.hasProperty("kotlin") } .collectMany { it.kotlin.sourceSets } .findAll { sourceSet -> approximateNames.any { nameToFilter -> sourceSet.name.contains(nameToFilter) } }.collect { it.kotlin } } dokka { // aggregating every module's sources into one publication needs more heap than the worker default dokkaGeneratorIsolation = ProcessIsolation { it.maxHeapSize.set("4g") } dokkaSourceSets { configureEach { skipDeprecated.set(true) sourceLink { localDirectory.set(file("../")) remoteUrl.set(new URI("https://github.com/InsanusMokrassar/ktgbotapi")) remoteLineSuffix.set("#L") } } named("commonMain") { sourceRoots.setFrom(findSourcesWithName("commonMain")) } named("jsMain") { sourceRoots.setFrom(findSourcesWithName("jsMain")) } named("jvmMain") { sourceRoots.setFrom(findSourcesWithName("jvmMain")) } } }