plugins { kotlin("multiplatform") kotlin("plugin.serialization") } val kotlinxSerializationVersion: String by rootProject.extra val kotestVersion: String by rootProject.extra val junitJupiterVersion: String by rootProject.extra val jvmTarget: String by rootProject.extra val kotlinApiVersion: String by rootProject.extra val kotlinVersion: String by rootProject.extra val kotlinLoggingVersion: String by rootProject.extra val kluentVersion: String by rootProject.extra val openrndrVersion: String by rootProject.extra val openrndrOS: String by rootProject.extra val spekVersion: String by rootProject.extra kotlin { jvm { compilations.all { kotlinOptions.jvmTarget = jvmTarget kotlinOptions.apiVersion = kotlinApiVersion } testRuns["test"].executionTask.configure { useJUnitPlatform() } } js(IR) { browser() nodejs() } sourceSets { val shaderKotlin by creating { this.kotlin.srcDir("$projectDir/build/generated/shaderKotlin") } @Suppress("UNUSED_VARIABLE") val commonMain by getting { dependencies { implementation("org.openrndr:openrndr-application:$openrndrVersion") implementation("org.openrndr:openrndr-math:$openrndrVersion") implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion") implementation("io.github.microutils:kotlin-logging:$kotlinLoggingVersion") } } @Suppress("UNUSED_VARIABLE") val commonTest by getting { dependencies { implementation(kotlin("test-common")) implementation(kotlin("test-annotations-common")) implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxSerializationVersion") implementation("io.kotest:kotest-assertions-core:$kotestVersion") } } @Suppress("UNUSED_VARIABLE") val jvmMain by getting @Suppress("UNUSED_VARIABLE") val jvmTest by getting { dependencies { implementation(kotlin("test-common")) implementation(kotlin("test-annotations-common")) implementation(kotlin("test-junit5")) implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxSerializationVersion") runtimeOnly("org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion") runtimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion") implementation("org.spekframework.spek2:spek-dsl-jvm:$spekVersion") implementation("org.amshove.kluent:kluent:$kluentVersion") } } @Suppress("UNUSED_VARIABLE") val jsMain by getting @Suppress("UNUSED_VARIABLE") val jsTest by getting { dependencies { implementation(kotlin("test-js")) } } } }