Use openrndr-dependency-catalog and openrndr-module-catalog to resolve dependencies. Publish orx-module-catalog (#374)

This commit is contained in:
Edwin Jakobs
2025-09-13 00:54:51 -07:00
committed by GitHub
parent 4ddb73a596
commit a913f3f370
72 changed files with 407 additions and 304 deletions

View File

@@ -1,5 +1,6 @@
plugins {
`kotlin-dsl`
// alias(sha)
}
val preload: SourceSet by sourceSets.creating
@@ -15,7 +16,7 @@ dependencies {
implementation(libs.kotlin.serialization.gradle.plugin)
// https://github.com/gradle/gradle/issues/15383#issuecomment-779893192
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
"preloadImplementation"(libs.openrndr.application)
"preloadImplementation"(openrndr.application)
"preloadImplementation"(libs.openrndr.extensions)
}
kotlin {

View File

@@ -1,7 +1,25 @@
dependencyResolutionManagement {
repositories {
mavenCentral()
mavenLocal {
include("org.openrndr")
}
}
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
// We use a regex to get the openrndr version from the primary catalog as there is no public Gradle API to parse catalogs.
val regEx = Regex("^openrndr[ ]*=[ ]*(?:\\{[ ]*require[ ]*=[ ]*)?\"(.*)\"[ ]*(?:\\})?", RegexOption.MULTILINE)
val openrndrVersion = regEx.find(File(rootDir,"../gradle/libs.versions.toml").readText())?.groupValues?.get(1) ?: error("can't find openrndr version")
create("sharedLibs") {
from("org.openrndr:openrndr-dependency-catalog:$openrndrVersion")
}
create("openrndr") {
from("org.openrndr:openrndr-module-catalog:$openrndrVersion")
}
}
}
}

View File

@@ -3,11 +3,14 @@ package org.openrndr.extra.convention
import ScreenshotsHelper.collectScreenshots
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.kotlin.dsl.the
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
val sharedLibs = extensions.getByType(VersionCatalogsExtension::class.java).named("sharedLibs")
val openrndr = extensions.getByType(VersionCatalogsExtension::class.java).named("openrndr")
val libs = the<LibrariesForLibs>()
val shouldPublish = project.name !in setOf("openrndr-demos", "orx-git-archiver-gradle")
@@ -51,19 +54,19 @@ val demo: SourceSet by sourceSets.creating {
}
dependencies {
implementation(libs.kotlin.stdlib)
implementation(libs.kotlin.logging)
testImplementation(libs.kotlin.test)
testRuntimeOnly(libs.slf4j.simple)
implementation(sharedLibs.findLibrary("kotlin-stdlib").get())
implementation(sharedLibs.findLibrary("kotlin-logging").get())
testImplementation(sharedLibs.findLibrary("kotlin-test").get())
testRuntimeOnly(sharedLibs.findLibrary("slf4j-simple").get())
"demoImplementation"(main.output.classesDirs + main.runtimeClasspath)
"demoImplementation"(libs.openrndr.application)
"demoImplementation"(openrndr.findLibrary("application").get())
"demoImplementation"(libs.openrndr.extensions)
if (DefaultNativePlatform.getCurrentOperatingSystem().isMacOsX) {
"demoRuntimeOnly"(libs.openrndr.gl3.natives.macos.arm64)
}
"demoRuntimeOnly"(libs.openrndr.gl3.core)
"demoRuntimeOnly"(libs.slf4j.simple)
"demoRuntimeOnly"(sharedLibs.findLibrary("slf4j.simple").get())
}
tasks {

View File

@@ -2,9 +2,9 @@ package org.openrndr.extra.convention
import CollectScreenshotsTask
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import org.gradle.nativeplatform.platform.internal.DefaultOperatingSystem
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
@@ -12,6 +12,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
val libs = the<LibrariesForLibs>()
val sharedLibs = extensions.getByType(VersionCatalogsExtension::class.java).named("sharedLibs")
val openrndr = extensions.getByType(VersionCatalogsExtension::class.java).named("openrndr")
val shouldPublish = project.name !in setOf("openrndr-demos")
@@ -90,7 +92,7 @@ kotlin {
val commonMain by getting {
dependencies {
implementation(libs.kotlin.stdlib)
implementation(libs.kotlin.logging)
implementation(sharedLibs.findLibrary("kotlin-logging").get())
}
}
@@ -102,17 +104,17 @@ kotlin {
val jvmTest by getting {
dependencies {
runtimeOnly(libs.bundles.jupiter)
runtimeOnly(libs.slf4j.simple)
runtimeOnly(sharedLibs.findBundle("jupiter").get())
runtimeOnly(sharedLibs.findLibrary("slf4j.simple").get())
}
}
val jvmDemo by getting {
dependencies {
implementation(libs.openrndr.application)
implementation(libs.openrndr.extensions)
implementation(openrndr.findLibrary("application").get())
implementation(openrndr.findLibrary("orextensions").get())
runtimeOnly(libs.openrndr.gl3.core)
runtimeOnly(libs.slf4j.simple)
runtimeOnly(sharedLibs.findLibrary("slf4j-simple").get())
}
}
}