build.gradle.kts (74 lines of code) (raw):
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon
import org.jmailen.gradle.kotlinter.tasks.FormatTask
import org.jmailen.gradle.kotlinter.tasks.LintTask
plugins {
`build-config`
}
val generated = layout.buildDirectory.dir("generated/commonMain/kotlin")
kotlin {
sourceSets {
commonMain {
kotlin.srcDirs(generated)
dependencies {
api(projects.versionUtils)
api(packageSearchApiModelsVersions.datetime)
api(packageSearchApiModelsVersions.kotlinx.serialization.json)
api(packageSearchApiModelsVersions.krypto)
}
}
jsMain {
dependencies {
api(npm(packageSearchApiModelsVersions.date.fns))
api(kotlinxDocumentStore.browser)
}
}
jvmMain{
dependencies{
api(kotlinxDocumentStore.mvstore)
}
}
jvmTest {
dependencies {
implementation(packageSearchApiModelsVersions.junit.jupiter.api)
implementation(packageSearchApiModelsVersions.junit.jupiter.params)
implementation(packageSearchApiModelsVersions.assertk)
runtimeOnly(packageSearchApiModelsVersions.junit.jupiter.engine)
}
}
}
}
tasks {
val generateApiClientObject by registering(GenerateApiClientObject::class) {
group = "generate"
outputDir = generated
packageName = "org.jetbrains.packagesearch.api"
}
compileKotlinJs {
dependsOn(generateApiClientObject)
}
jsSourcesJar{
dependsOn(generateApiClientObject)
}
jvmSourcesJar{
dependsOn(generateApiClientObject)
}
sourcesJar{
dependsOn(generateApiClientObject)
}
withType<KotlinCompileCommon> {
dependsOn(generateApiClientObject)
}
withType<SourceTask>{
dependsOn(generateApiClientObject)
}
withType<KotlinCompile> {
dependsOn(generateApiClientObject)
}
withType<LintTask> {
dependsOn(generateApiClientObject)
}
withType<FormatTask>{
dependsOn(generateApiClientObject)
}
}