diff --git a/build.gradle b/build.gradle index d6a368cd..6955b02d 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,7 @@ plugins { def multiplatformModules = [ "orx-camera", + "orx-compositor", "orx-noise", "orx-shader-phrases", "orx-parameters", diff --git a/orx-compositor/build.gradle b/orx-compositor/build.gradle deleted file mode 100644 index c8ac42e1..00000000 --- a/orx-compositor/build.gradle +++ /dev/null @@ -1,22 +0,0 @@ -sourceSets { - demo { - java { - srcDirs = ["src/demo/kotlin"] - compileClasspath += main.getCompileClasspath() - runtimeClasspath += main.getRuntimeClasspath() - } - } -} - -dependencies { - api project(":orx-parameters") - api project(":orx-fx") - - implementation project(":orx-fx") - - demoImplementation("org.openrndr:openrndr-application:$openrndrVersion") - demoImplementation("org.openrndr:openrndr-extensions:$openrndrVersion") - demoRuntimeOnly("org.openrndr:openrndr-gl3:$openrndrVersion") - demoRuntimeOnly("org.openrndr:openrndr-gl3-natives-$openrndrOS:$openrndrVersion") - demoImplementation(sourceSets.getByName("main").output) -} \ No newline at end of file diff --git a/orx-compositor/build.gradle.kts b/orx-compositor/build.gradle.kts new file mode 100644 index 00000000..1afa6690 --- /dev/null +++ b/orx-compositor/build.gradle.kts @@ -0,0 +1,98 @@ +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-fx")) + 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 { + @Suppress("UNUSED_VARIABLE") + val commonMain by getting { + dependencies { + implementation(project(":orx-fx")) + implementation(project(":orx-parameters")) + implementation(project(":orx-shader-phrases")) + implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$kotlinxSerializationVersion") + implementation("org.openrndr:openrndr-application:$openrndrVersion") + implementation("org.openrndr:openrndr-draw:$openrndrVersion") + implementation("org.openrndr:openrndr-filter:$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 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 jsTest by getting { + dependencies { + implementation(kotlin("test-js")) + } + } + } +} \ No newline at end of file diff --git a/orx-compositor/src/main/kotlin/Compositor.kt b/orx-compositor/src/commonMain/kotlin/Compositor.kt similarity index 100% rename from orx-compositor/src/main/kotlin/Compositor.kt rename to orx-compositor/src/commonMain/kotlin/Compositor.kt diff --git a/orx-jvm/orx-rabbit-control/build.gradle b/orx-jvm/orx-rabbit-control/build.gradle index 3e8402ca..5f359438 100644 --- a/orx-jvm/orx-rabbit-control/build.gradle +++ b/orx-jvm/orx-rabbit-control/build.gradle @@ -9,9 +9,10 @@ sourceSets { } dependencies { - api project(":orx-parameters") - api project(":orx-compositor") - api project(":orx-image-fit") + implementation project(":orx-parameters") + implementation project(":orx-compositor") + implementation project(":orx-image-fit") + implementation project(":orx-fx") implementation "cc.rabbitcontrol:rcp:0.3.26" implementation "com.google.zxing:core:3.4.0"