116 lines
4.5 KiB
Plaintext
116 lines
4.5 KiB
Plaintext
import Orx_embed_shaders_gradle.EmbedShadersTask
|
|
|
|
plugins {
|
|
kotlin("multiplatform")
|
|
kotlin("plugin.serialization")
|
|
id("orx.embed-shaders")
|
|
}
|
|
|
|
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 {
|
|
val demo by creating {
|
|
defaultSourceSet {
|
|
kotlin.srcDir("src/demo")
|
|
dependencies {
|
|
implementation(project(":orx-camera"))
|
|
implementation("org.openrndr:openrndr-application:$openrndrVersion")
|
|
implementation("org.openrndr:openrndr-extensions:$openrndrVersion")
|
|
runtimeOnly("org.openrndr:openrndr-gl3:$openrndrVersion")
|
|
runtimeOnly("org.openrndr:openrndr-gl3-natives-$openrndrOS:$openrndrVersion")
|
|
implementation(compilations["main"]!!.output.allOutputs)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
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.jetbrains.kotlinx:kotlinx-serialization-core:$kotlinxSerializationVersion")
|
|
implementation("org.openrndr:openrndr-application:$openrndrVersion")
|
|
implementation("org.openrndr:openrndr-draw:$openrndrVersion")
|
|
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
|
|
implementation("io.github.microutils:kotlin-logging:$kotlinLoggingVersion")
|
|
api(shaderKotlin.kotlin)
|
|
}
|
|
}
|
|
commonMain.dependsOn(shaderKotlin)
|
|
@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"))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
|
inputDir.set(file("$projectDir/src/shaders/glsl"))
|
|
outputDir.set(file("$buildDir/generated/shaderKotlin"))
|
|
defaultPackage.set("org.openrndr.shaderphrases.phrases")
|
|
}.get()
|
|
|
|
tasks.getByName("compileKotlinJvm").dependsOn(embedShaders)
|
|
tasks.getByName("compileKotlinJs").dependsOn(embedShaders)
|
|
tasks.getByName("compileKotlinMetadata").dependsOn(embedShaders)
|
|
tasks.getByName("jvmSourcesJar").dependsOn(embedShaders)
|
|
tasks.getByName("sourcesJar").dependsOn(embedShaders)
|