build(module_build): use same DependencyInfo -> String logic for modules and engine (#4649)
* build(module_build): use same DependencyInfo -> String logic for modules and engine * build(module_build): remove corner case handling for min SNAPHSOTdevelop
parent
0d39a3bca5
commit
e3c202adab
|
@ -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<Pair<GradleDependencyInfo, Boolean>> {
|
||||
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<GradleDependencyInfo, Boolean> {
|
||||
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<GradleDependencyInfo, Boolean> {
|
||||
val version = versionStringFromGestaltDependency(gestaltDependency)
|
||||
|
||||
val gradleDep = GradleDependencyInfo(TERASOLOGY_MODULES_GROUP, gestaltDependency.id.toString(), version)
|
||||
return Pair(gradleDep, gestaltDependency.isOptional)
|
||||
|
|
Loading…
Reference in New Issue