diff --git a/build-logic/src/main/kotlin/org/terasology/gradology/module_build.kt b/build-logic/src/main/kotlin/org/terasology/gradology/module_build.kt index fa2f8456a..dde9bb661 100644 --- a/build-logic/src/main/kotlin/org/terasology/gradology/module_build.kt +++ b/build-logic/src/main/kotlin/org/terasology/gradology/module_build.kt @@ -48,9 +48,11 @@ class ModuleMetadataForGradle(private val moduleConfig: ModuleMetadata) { val group: String = TERASOLOGY_MODULES_GROUP fun engineVersion(): String { - return moduleConfig.dependencies.filterNotNull() + return moduleConfig.dependencies + .filterNotNull() .find { it.id.toString() == ENGINE_MODULE_NAME } - ?.versionRange()?.toString() ?: "+" + ?.let(this::versionStringFromGestaltDependency) + ?: "+" } /** @@ -59,27 +61,23 @@ class ModuleMetadataForGradle(private val moduleConfig: ModuleMetadata) { * @return a list of modules and whether each is optional */ fun moduleDependencies(): List> { - val gestaltDeps = moduleConfig.dependencies.filterNotNull().filterNot { it.id.toString() == "engine" } + val gestaltDeps = moduleConfig.dependencies.filterNotNull().filterNot { it.id.toString() == ENGINE_MODULE_NAME } return gestaltDeps.map { gradleModule(it) } } - private fun gradleModule(gestaltDependency: DependencyInfo): Pair { - if (!gestaltDependency.minVersion.isSnapshot) { - // gestalt considers snapshots to satisfy a minimum requirement: - // https://github.com/MovingBlocks/gestalt/blob/fe1893821127/gestalt-module/src/main/java/org/terasology/naming/VersionRange.java#L58-L59 - gestaltDependency.minVersion = gestaltDependency.minVersion.snapshot - // (maybe there's some way to do that with a custom gradle resolver? - // but making a resolver that only works that way on gestalt modules specifically - // sounds complicated.) - } - + private fun versionStringFromGestaltDependency(gestaltDependency: DependencyInfo): String { val version = if (gestaltDependency.versionPredicate() is VersionRange) { gestaltDependency.versionPredicate().toString() } else { // TODO: gradle-compatible version expressions for gestalt dependencies // https://github.com/MovingBlocks/gestalt/issues/114 - "[${gestaltDependency.minVersion},)" + "[${gestaltDependency.minVersion},)" } + return version; + } + + private fun gradleModule(gestaltDependency: DependencyInfo): Pair { + val version = versionStringFromGestaltDependency(gestaltDependency) val gradleDep = GradleDependencyInfo(TERASOLOGY_MODULES_GROUP, gestaltDependency.id.toString(), version) return Pair(gradleDep, gestaltDependency.isOptional)