Skip to content

Commit b2941bf

Browse files
committed
Use openrndr-dependency-catalog and openrndr-module-catalog to resolve dependencies. Publish orx-module-catalog
1 parent 4ddb73a commit b2941bf

72 files changed

Lines changed: 407 additions & 304 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

buildSrc/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
`kotlin-dsl`
3+
// alias(sha)
34
}
45

56
val preload: SourceSet by sourceSets.creating
@@ -15,7 +16,7 @@ dependencies {
1516
implementation(libs.kotlin.serialization.gradle.plugin)
1617
// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
1718
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
18-
"preloadImplementation"(libs.openrndr.application)
19+
"preloadImplementation"(openrndr.application)
1920
"preloadImplementation"(libs.openrndr.extensions)
2021
}
2122
kotlin {

buildSrc/settings.gradle.kts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,25 @@
11
dependencyResolutionManagement {
2+
repositories {
3+
mavenCentral()
4+
mavenLocal {
5+
include("org.openrndr")
6+
}
7+
}
8+
29
versionCatalogs {
310
create("libs") {
411
from(files("../gradle/libs.versions.toml"))
512
}
13+
14+
// We use a regex to get the openrndr version from the primary catalog as there is no public Gradle API to parse catalogs.
15+
val regEx = Regex("^openrndr[ ]*=[ ]*(?:\\{[ ]*require[ ]*=[ ]*)?\"(.*)\"[ ]*(?:\\})?", RegexOption.MULTILINE)
16+
val openrndrVersion = regEx.find(File(rootDir,"../gradle/libs.versions.toml").readText())?.groupValues?.get(1) ?: error("can't find openrndr version")
17+
create("sharedLibs") {
18+
from("org.openrndr:openrndr-dependency-catalog:$openrndrVersion")
19+
}
20+
create("openrndr") {
21+
from("org.openrndr:openrndr-module-catalog:$openrndrVersion")
22+
}
623
}
7-
}
24+
}
25+

buildSrc/src/main/kotlin/org/openrndr/extra/convention/kotlin-jvm.gradle.kts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ package org.openrndr.extra.convention
33
import ScreenshotsHelper.collectScreenshots
44
import org.gradle.accessors.dm.LibrariesForLibs
55
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
6+
import org.gradle.kotlin.dsl.the
67
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
78
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
89
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
910
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
1011

12+
val sharedLibs = extensions.getByType(VersionCatalogsExtension::class.java).named("sharedLibs")
13+
val openrndr = extensions.getByType(VersionCatalogsExtension::class.java).named("openrndr")
1114
val libs = the<LibrariesForLibs>()
1215

1316
val shouldPublish = project.name !in setOf("openrndr-demos", "orx-git-archiver-gradle")
@@ -51,19 +54,19 @@ val demo: SourceSet by sourceSets.creating {
5154
}
5255

5356
dependencies {
54-
implementation(libs.kotlin.stdlib)
55-
implementation(libs.kotlin.logging)
56-
testImplementation(libs.kotlin.test)
57-
testRuntimeOnly(libs.slf4j.simple)
57+
implementation(sharedLibs.findLibrary("kotlin-stdlib").get())
58+
implementation(sharedLibs.findLibrary("kotlin-logging").get())
59+
testImplementation(sharedLibs.findLibrary("kotlin-test").get())
60+
testRuntimeOnly(sharedLibs.findLibrary("slf4j-simple").get())
5861
"demoImplementation"(main.output.classesDirs + main.runtimeClasspath)
59-
"demoImplementation"(libs.openrndr.application)
62+
"demoImplementation"(openrndr.findLibrary("application").get())
6063
"demoImplementation"(libs.openrndr.extensions)
6164

6265
if (DefaultNativePlatform.getCurrentOperatingSystem().isMacOsX) {
6366
"demoRuntimeOnly"(libs.openrndr.gl3.natives.macos.arm64)
6467
}
6568
"demoRuntimeOnly"(libs.openrndr.gl3.core)
66-
"demoRuntimeOnly"(libs.slf4j.simple)
69+
"demoRuntimeOnly"(sharedLibs.findLibrary("slf4j.simple").get())
6770
}
6871

6972
tasks {

buildSrc/src/main/kotlin/org/openrndr/extra/convention/kotlin-multiplatform.gradle.kts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@ package org.openrndr.extra.convention
22

33
import CollectScreenshotsTask
44
import org.gradle.accessors.dm.LibrariesForLibs
5+
56
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
67
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
7-
import org.gradle.nativeplatform.platform.internal.DefaultOperatingSystem
88
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
99
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1010
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
1111
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
1212
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
1313

1414
val libs = the<LibrariesForLibs>()
15+
val sharedLibs = extensions.getByType(VersionCatalogsExtension::class.java).named("sharedLibs")
16+
val openrndr = extensions.getByType(VersionCatalogsExtension::class.java).named("openrndr")
1517

1618
val shouldPublish = project.name !in setOf("openrndr-demos")
1719

@@ -90,7 +92,7 @@ kotlin {
9092
val commonMain by getting {
9193
dependencies {
9294
implementation(libs.kotlin.stdlib)
93-
implementation(libs.kotlin.logging)
95+
implementation(sharedLibs.findLibrary("kotlin-logging").get())
9496
}
9597
}
9698

@@ -102,17 +104,17 @@ kotlin {
102104

103105
val jvmTest by getting {
104106
dependencies {
105-
runtimeOnly(libs.bundles.jupiter)
106-
runtimeOnly(libs.slf4j.simple)
107+
runtimeOnly(sharedLibs.findBundle("jupiter").get())
108+
runtimeOnly(sharedLibs.findLibrary("slf4j.simple").get())
107109
}
108110
}
109111

110112
val jvmDemo by getting {
111113
dependencies {
112-
implementation(libs.openrndr.application)
113-
implementation(libs.openrndr.extensions)
114+
implementation(openrndr.findLibrary("application").get())
115+
implementation(openrndr.findLibrary("orextensions").get())
114116
runtimeOnly(libs.openrndr.gl3.core)
115-
runtimeOnly(libs.slf4j.simple)
117+
runtimeOnly(sharedLibs.findLibrary("slf4j-simple").get())
116118
}
117119
}
118120
}

gradle/libs.versions.toml

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,16 @@ kotlinApi = "2.2"
33
kotlinLanguage = "2.2"
44
kotlin = "2.2.10"
55
jvmTarget = "17"
6-
openrndr = { require = "[0.4.2, 0.5.0)" }
7-
kotlinxCoroutines = "1.10.2"
8-
kotlinLogging = "7.0.13"
9-
kotlinxSerialization = "1.9.0"
6+
openrndr = { require = "[0.5,0.6.0)" }
107
kotest = "5.9.1"
118
dokka = "2.0.0"
129
nebulaRelease = "18.0.7"
1310
boofcv = "1.2.3"
14-
junitJupiter = "5.13.4"
15-
slf4j = "2.0.17"
1611
libfreenect = "0.5.7-1.5.9"
1712
librealsense = "2.53.1-1.5.9"
1813
gson = "2.13.1"
1914
antlr = "4.13.2"
2015
antlrKotlin = "1.0.3"
21-
tensorflow = "0.5.0"
2216
minim = "2.2.2"
2317
netty = "4.2.4.Final"
2418
rabbitcontrol = "0.3.39"
@@ -32,42 +26,23 @@ processing = "4.4.6"
3226
nmcp = "1.1.0"
3327

3428
[libraries]
35-
kotlin-logging = { group = "io.github.oshai", name = "kotlin-logging", version.ref = "kotlinLogging" }
36-
kotlin-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
37-
kotlin-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
38-
kotlin-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinxSerialization" }
3929
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
4030
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" }
41-
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
4231
kotlin-scriptingJvm = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm", version.ref = "kotlin" }
4332
kotlin-scriptingJvmHost = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm-host", version.ref = "kotlin" }
4433
kotlin-scriptingJSR223 = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlin" }
4534
kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
4635
kotlin-serialization-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" }
4736
dokka-gradle-plugin = { group = "org.jetbrains.dokka", name = "dokka-gradle-plugin", version.ref = "dokka" }
4837

49-
kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" }
50-
kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5", version.ref = "kotest" }
51-
kotest-framework-engine = { group = "io.kotest", name = "kotest-framework-engine", version.ref = "kotest" }
52-
5338
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk"}
5439

5540
processing-core = { group = "org.processing", name = "core", version.ref = "processing"}
5641

57-
openrndr-application = { group = "org.openrndr", name = "openrndr-application", version.ref = "openrndr" }
5842
openrndr-extensions = { group = "org.openrndr", name = "openrndr-extensions", version.ref = "openrndr" }
59-
openrndr-math = { group = "org.openrndr", name = "openrndr-math", version.ref = "openrndr" }
60-
openrndr-utils = { group = "org.openrndr", name = "openrndr-utils", version.ref = "openrndr" }
61-
openrndr-shape = { group = "org.openrndr", name = "openrndr-shape", version.ref = "openrndr" }
62-
openrndr-draw = { group = "org.openrndr", name = "openrndr-draw", version.ref = "openrndr" }
63-
openrndr-event = { group = "org.openrndr", name = "openrndr-event", version.ref = "openrndr" }
64-
openrndr-filter = { group = "org.openrndr", name = "openrndr-filter", version.ref = "openrndr" }
65-
openrndr-dialogs = { group = "org.openrndr", name = "openrndr-dialogs", version.ref = "openrndr" }
66-
openrndr-ffmpeg = { group = "org.openrndr", name = "openrndr-ffmpeg", version.ref = "openrndr" }
6743
openrndr-gl3-core = { group = "org.openrndr", name = "openrndr-gl3", version.ref = "openrndr" }
6844
openrndr-gl3-natives-macos-arm64 = { group = "org.openrndr", name = "openrndr-gl3-natives-macos-arm64", version.ref = "openrndr" }
6945

70-
tensorflow = { group = "org.tensorflow", name = "tensorflow-core-api", version.ref = "tensorflow" }
7146
boofcv = { group = "org.boofcv", name = "boofcv-core", version.ref = "boofcv" }
7247
libfreenect = { group = "org.bytedeco", name = "libfreenect", version.ref = "libfreenect" }
7348
librealsense = { group = "org.bytedeco", name = "librealsense2", version.ref = "librealsense" }
@@ -85,15 +60,9 @@ antlr-runtime = { group = "org.antlr", name = "antlr4-runtime", version.ref = "a
8560
antlr-kotlin-runtime = { group = "com.strumenta", name = "antlr-kotlin-runtime", version.ref = "antlrKotlin" }
8661
jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" }
8762

88-
jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junitJupiter" }
89-
jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junitJupiter" }
90-
slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }
91-
9263
[plugins]
9364
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
9465
nebula-release = { id = "nebula.release", version.ref = "nebulaRelease" }
9566
kotest-multiplatform = { id = "io.kotest.multiplatform", version.ref = "kotest" }
9667
antlr-kotlin = { id = "com.strumenta.antlr-kotlin", version.ref = "antlrKotlin" }
97-
nmcp = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }
98-
[bundles]
99-
jupiter = ["jupiter-api", "jupiter-engine"]
68+
nmcp = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }

openrndr-demos/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ dependencies {
1313
demoImplementation(project(":orx-composition"))
1414
demoImplementation(project(":orx-shapes"))
1515
demoImplementation(project(":orx-svg"))
16-
demoImplementation(libs.slf4j.simple)
17-
demoImplementation(libs.openrndr.ffmpeg)
16+
demoImplementation(sharedLibs.slf4j.simple)
17+
demoImplementation(openrndr.ffmpeg)
1818
}

orx-camera/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ kotlin {
1616
dependencies {
1717
implementation(project(":orx-parameters"))
1818
implementation(project(":orx-shader-phrases"))
19-
implementation(libs.openrndr.application)
20-
implementation(libs.openrndr.draw)
21-
implementation(libs.openrndr.filter)
22-
implementation(libs.kotlin.reflect)
19+
implementation(openrndr.application)
20+
implementation(openrndr.draw)
21+
implementation(openrndr.filter)
22+
implementation(sharedLibs.kotlin.reflect)
2323
}
2424
}
2525

orx-color/build.gradle.kts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,27 @@ kotlin {
1414
dependencies {
1515
implementation(project(":orx-parameters"))
1616
implementation(project(":orx-shader-phrases"))
17-
implementation(libs.kotlin.serialization.core)
18-
implementation(libs.openrndr.application)
19-
implementation(libs.openrndr.draw)
20-
implementation(libs.openrndr.filter)
21-
implementation(libs.kotlin.reflect)
17+
implementation(sharedLibs.kotlin.serialization.core)
18+
implementation(openrndr.application)
19+
implementation(openrndr.draw)
20+
implementation(openrndr.filter)
21+
implementation(sharedLibs.kotlin.reflect)
2222
}
2323
}
2424

2525
val commonTest by getting {
2626
dependencies {
27-
implementation(libs.kotlin.serialization.json)
28-
implementation(libs.kotest.assertions)
29-
implementation(libs.kotest.framework.engine)
27+
implementation(sharedLibs.kotlin.serialization.json)
28+
implementation(sharedLibs.kotest.assertions)
29+
implementation(sharedLibs.kotest.framework.engine)
3030
}
3131
}
3232

3333
val jvmTest by getting {
3434
dependencies {
35-
implementation(libs.kotlin.serialization.json)
36-
implementation(libs.kotest.assertions)
37-
implementation(libs.kotest.framework.engine)
35+
implementation(sharedLibs.kotlin.serialization.json)
36+
implementation(sharedLibs.kotest.assertions)
37+
implementation(sharedLibs.kotest.framework.engine)
3838
}
3939
}
4040

orx-composition/build.gradle.kts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ kotlin {
1111
@Suppress("UNUSED_VARIABLE")
1212
val commonMain by getting {
1313
dependencies {
14-
implementation(libs.openrndr.application)
15-
implementation(libs.openrndr.draw)
16-
implementation(libs.openrndr.filter)
17-
implementation(libs.kotlin.reflect)
18-
implementation(libs.kotlin.serialization.core)
14+
implementation(openrndr.application)
15+
implementation(openrndr.draw)
16+
implementation(openrndr.filter)
17+
implementation(sharedLibs.kotlin.reflect)
18+
implementation(sharedLibs.kotlin.serialization.core)
1919
}
2020
}
2121

orx-compositor/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ kotlin {
1010
implementation(project(":orx-fx"))
1111
implementation(project(":orx-parameters"))
1212
implementation(project(":orx-shader-phrases"))
13-
implementation(libs.openrndr.application)
14-
implementation(libs.openrndr.draw)
15-
implementation(libs.openrndr.filter)
16-
implementation(libs.kotlin.reflect)
13+
implementation(openrndr.application)
14+
implementation(openrndr.draw)
15+
implementation(openrndr.filter)
16+
implementation(sharedLibs.kotlin.reflect)
1717
}
1818
}
1919

0 commit comments

Comments
 (0)