aboutsummaryrefslogtreecommitdiff
path: root/build.gradle.kts
diff options
context:
space:
mode:
authorAbe Pazos <abe@hamoid.com>2025-09-06 13:54:37 +0200
committerAbe Pazos <abe@hamoid.com>2025-09-06 13:54:37 +0200
commit622bfc5077e7f1065228518065768600a2fb1439 (patch)
treeb450f171938410c818906e951b413b3daa197e98 /build.gradle.kts
parente1d44de9a1279e2aa934440e6941928f80acb317 (diff)
parentc2756d2b9d91b3e52f9bd8b49fd4188431d03bf5 (diff)
downloadart-playground-openrndr-622bfc5077e7f1065228518065768600a2fb1439.tar.gz
art-playground-openrndr-622bfc5077e7f1065228518065768600a2fb1439.zip
Merge branch 'next-version' ignoring changes in master
Includes openrndr and orx 0.4.5
Diffstat (limited to 'build.gradle.kts')
-rw-r--r--build.gradle.kts107
1 files changed, 64 insertions, 43 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index 2310254..0124af9 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,7 +1,8 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.gradle.internal.os.OperatingSystem
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
group = "org.openrndr.template"
version = "1.0.0"
@@ -10,10 +11,12 @@ val applicationMainClass = "TemplateProgramKt"
/** ## additional ORX features to be added to this project */
val orxFeatures = setOf<String>(
+// "orx-axidraw",
// "orx-boofcv",
"orx-camera",
// "orx-chataigne",
"orx-color",
+// "orx-composition",
"orx-compositor",
// "orx-compute-graph",
// "orx-compute-graph-nodes",
@@ -22,6 +25,8 @@ val orxFeatures = setOf<String>(
// "orx-easing",
"orx-envelopes",
// "orx-expression-evaluator",
+// "orx-fcurve",
+// "orx-fft",
// "orx-file-watcher",
"orx-fx",
// "orx-git-archiver",
@@ -37,6 +42,7 @@ val orxFeatures = setOf<String>(
// "orx-kinect-v1",
// "orx-kotlin-parser",
// "orx-marching-squares",
+// "orx-math",
// "orx-mesh-generators",
// "orx-midi",
// "orx-minim",
@@ -57,9 +63,11 @@ val orxFeatures = setOf<String>(
"orx-shade-styles",
// "orx-shader-phrases",
"orx-shapes",
+// "orx-svg",
// "orx-syphon",
// "orx-temporal-blur",
// "orx-tensorflow",
+// "orx-text-writer",
// "orx-time-operators",
// "orx-timer",
// "orx-triangulation",
@@ -101,6 +109,7 @@ plugins {
alias(libs.plugins.runtime)
alias(libs.plugins.gitarchive.tomarkdown).apply(false)
alias(libs.plugins.versions)
+ alias(libs.plugins.kotlin.serialization)
}
repositories {
@@ -111,20 +120,28 @@ repositories {
dependencies {
// implementation(libs.jsoup)
-// implementation(libs.gson)
// implementation(libs.csv)
+ /* ORSL dependencies */
+
+// implementation(libs.orsl.shader.generator)
+// implementation(libs.orsl.extension.color)
+// implementation(libs.orsl.extension.easing)
+// implementation(libs.orsl.extension.gradient)
+// implementation(libs.orsl.extension.noise)
+// implementation(libs.orsl.extension.pbr)
+// implementation(libs.orsl.extension.raymarching)
+// implementation(libs.orsl.extension.sdf)
+
implementation(libs.kotlinx.coroutines.core)
+ implementation(libs.kotlinx.serialization.core)
+ implementation(libs.kotlinx.serialization.json)
implementation(libs.slf4j.api)
implementation(libs.kotlin.logging)
when (applicationLogging) {
- Logging.NONE -> {
- runtimeOnly(libs.slf4j.nop)
- }
- Logging.SIMPLE -> {
- runtimeOnly(libs.slf4j.simple)
- }
+ Logging.NONE -> runtimeOnly(libs.slf4j.nop)
+ Logging.SIMPLE -> runtimeOnly(libs.slf4j.simple)
Logging.FULL -> {
runtimeOnly(libs.log4j.slf4j2)
runtimeOnly(libs.log4j.core)
@@ -139,21 +156,24 @@ dependencies {
// ------------------------------------------------------------------------------------------------------------------ //
java {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
-tasks.withType<KotlinCompile> {
- kotlinOptions.jvmTarget = "11"
+kotlin {
+ compilerOptions {
+ languageVersion = KotlinVersion.KOTLIN_2_0
+ apiVersion = KotlinVersion.KOTLIN_2_0
+ jvmTarget = JvmTarget.JVM_17
+ }
}
// ------------------------------------------------------------------------------------------------------------------ //
-project.setProperty("mainClassName", applicationMainClass)
-
application {
- if (hasProperty("openrndr.application")) {
- mainClass.set("${property("openrndr.application")}")
- }
+ mainClass = if (hasProperty("openrndr.application"))
+ "${property("openrndr.application")}"
+ else
+ applicationMainClass
}
tasks {
@@ -172,34 +192,33 @@ tasks {
exclude(dependency("org.bytedeco:.*"))
}
}
+}
+
+// ------------------------------------------------------------------------------------------------------------------ //
+
+tasks {
named<org.beryx.runtime.JPackageTask>("jpackage") {
doLast {
- val destPath = if(OperatingSystem.current().isMacOsX)
+ val destPath = if (OperatingSystem.current().isMacOsX)
"build/jpackage/openrndr-application.app/Contents/Resources/data"
else
"build/jpackage/openrndr-application/data"
copy {
- from("data") {
- include("**/*")
- }
+ from("data") { include("**/*") }
into(destPath)
}
}
}
-}
-
-// ------------------------------------------------------------------------------------------------------------------ //
-tasks.register<Zip>("jpackageZip") {
- archiveFileName.set("openrndr-application.zip")
- from("${layout.buildDirectory.get()}/jpackage") {
- include("**/*")
+ register<Zip>("jpackageZip") {
+ archiveFileName = "openrndr-application.zip"
+ from("${layout.buildDirectory.get()}/jpackage") {
+ include("**/*")
+ }
+ dependsOn("jpackage")
}
}
-tasks.findByName("jpackageZip")?.dependsOn("jpackage")
-
-// ------------------------------------------------------------------------------------------------------------------ //
runtime {
jpackage {
@@ -210,14 +229,16 @@ runtime {
jvmArgs.add("-Duser.dir=${"$"}APPDIR/../Resources")
}
}
- options.set(listOf("--strip-debug", "--compress", "1", "--no-header-files", "--no-man-pages"))
- modules.set(listOf("jdk.unsupported", "java.management", "java.desktop"))
+ options = listOf("--strip-debug", "--compress", "1", "--no-header-files", "--no-man-pages")
+ modules = listOf("jdk.unsupported", "java.management", "java.desktop")
}
// ------------------------------------------------------------------------------------------------------------------ //
-tasks.register<org.openrndr.extra.gitarchiver.GitArchiveToMarkdown>("gitArchiveToMarkDown") {
- historySize.set(20)
+tasks {
+ register<org.openrndr.extra.gitarchiver.GitArchiveToMarkdown>("gitArchiveToMarkDown") {
+ historySize = 20
+ }
}
// ------------------------------------------------------------------------------------------------------------------ //
@@ -228,9 +249,7 @@ tasks {
val nonStableKeywords = listOf("alpha", "beta", "rc")
- fun isNonStable(
- version: String
- ) = nonStableKeywords.any {
+ fun isNonStable(version: String) = nonStableKeywords.any {
version.lowercase().contains(it)
}
@@ -266,11 +285,13 @@ class Openrndr {
"aarch64", "arm-v8" -> "macos-arm64"
else -> "macos"
}
+
currOs.isLinux -> when (currArch) {
"x86-64" -> "linux-x64"
"aarch64" -> "linux-arm64"
else -> throw IllegalArgumentException("architecture not supported: $currArch")
}
+
else -> throw IllegalArgumentException("os not supported: ${currOs.name}")
}
@@ -287,7 +308,6 @@ class Openrndr {
implementation(openrndr("openal"))
runtimeOnly(openrndrNatives("openal"))
implementation(openrndr("application"))
- implementation(openrndr("svg"))
implementation(openrndr("animatable"))
implementation(openrndr("extensions"))
implementation(openrndr("filter"))
@@ -308,25 +328,26 @@ class Openrndr {
}
}
}
+
val openrndr = Openrndr()
if (properties["openrndr.tasks"] == "true") {
- task("create executable jar for $applicationMainClass") {
+ tasks.register("create executable jar for $applicationMainClass") {
group = " \uD83E\uDD8C OPENRNDR"
dependsOn("shadowJar")
}
- task("run $applicationMainClass") {
+ tasks.register("run $applicationMainClass") {
group = " \uD83E\uDD8C OPENRNDR"
dependsOn("run")
}
- task("create standalone executable for $applicationMainClass") {
+ tasks.register("create standalone executable for $applicationMainClass") {
group = " \uD83E\uDD8C OPENRNDR"
dependsOn("jpackageZip")
}
- task("add IDE file scopes") {
+ tasks.register("add IDE file scopes") {
group = " \uD83E\uDD8C OPENRNDR"
val scopesFolder = File("${project.projectDir}/.idea/scopes")
scopesFolder.mkdirs()