elect
03/14/2024, 9:43 AMfor (lib in listOf("gluegen:gluegen-rt", "jogl:jogl-all"))
for (platform in listOf("linux-aarch64", "linux-amd64", "linux-armv6hf", "linux-i586",
"macosx-universal", "windows-amd64", "windows-i586"))
"org.jogamp.$lib-natives-$platform"
I came out with this
val libs = listOf("gluegen:gluegen-rt", "jogl:jogl-all")
val platforms = listOf("linux-aarch64", "linux-amd64", "linux-armv6hf", "linux-i586", "macosx-universal", "windows-amd64", "windows-i586")
platforms.flatMap { p -> libs.map { "org.jogamp.$it-natives-$p" } }
Klitos Kyriacou
03/14/2024, 10:36 AMcartesianProduct
extension function just like this StackOverflow answer.
If your team is more familiar with a procedural style, this way doesn't look too bad either:
buildList {
for (lib in libs)
for (platform in platforms)
add("org.jogamp.$lib-natives-$platform")
}
ephemient
03/14/2024, 2:35 PMbuildList {
for (lib in libs) {
platforms.mapTo(this) { platform ->
"org.jogamp.$lib-natives-$platform"
}
}
}
is also an option. fewer temporaries than .flatMap{.map}
but basically the same