Use openrndr-dependency-catalog and openrndr-module-catalog to resolve dependencies. Publish orx-module-catalog (#374)
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user