buildscript { repositories { mavenCentral() mavenLocal() } dependencies { classpath libs.buildscript.kt.gradle classpath libs.buildscript.kt.serialization classpath libs.buildscript.gh.release } } plugins { alias(libs.plugins.multiplatform) alias(libs.plugins.serialization) alias(libs.plugins.nmcp.aggregation) } project.version = "$library_version" project.group = "dev.inmo" apply from: "publish.gradle" apply from: "github_release.gradle" repositories { mavenCentral() maven { url "https://nexus.inmo.dev/repository/maven-releases/" } mavenLocal() } kotlin { jvm { compilations.main { kotlinOptions { jvmTarget = "17" } } } js(IR) { browser() nodejs() } linuxX64() mingwX64() sourceSets { commonMain { dependencies { implementation kotlin('stdlib') api libs.kt.coroutines api libs.kt.serialization api libs.klock api libs.ktor.client api libs.microutils.common api libs.microutils.ktor.common api libs.microutils.mimetypes } } commonTest { dependencies { implementation kotlin('test-common') implementation kotlin('test-annotations-common') } } jvmTest { dependencies { implementation kotlin('test-junit') implementation libs.ktor.client.okhttp } } jsTest { dependencies { implementation kotlin('test-js') } } } } if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { nmcpAggregation { centralPortal { username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') validationTimeout = Duration.ofHours(4) publishingType = System.getenv('PUBLISHING_TYPE') != "" ? System.getenv('PUBLISHING_TYPE') : "USER_MANAGED" } publishAllProjectsProbablyBreakingProjectIsolation() } } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }