Allow different platforms to use different versions of OpenJFX
This commit is contained in:
@@ -8,11 +8,13 @@ buildscript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val jfxVersion = "17"
|
||||||
|
|
||||||
data class Platform(
|
data class Platform(
|
||||||
val name: String,
|
val name: String,
|
||||||
val classifier: String,
|
val classifier: String,
|
||||||
val groupId: String = "org.openjfx",
|
val groupId: String = "org.openjfx",
|
||||||
|
val version: String = jfxVersion,
|
||||||
val unsupportedModules: List<String> = listOf()
|
val unsupportedModules: List<String> = listOf()
|
||||||
) {
|
) {
|
||||||
val modules: List<String> = jfxModules.filter { it !in unsupportedModules }
|
val modules: List<String> = jfxModules.filter { it !in unsupportedModules }
|
||||||
@@ -22,12 +24,11 @@ data class Platform(
|
|||||||
repo: String = "https://repo1.maven.org/maven2"
|
repo: String = "https://repo1.maven.org/maven2"
|
||||||
): java.net.URL =
|
): java.net.URL =
|
||||||
java.net.URL(
|
java.net.URL(
|
||||||
"$repo/${groupId.replace('.', '/')}/javafx-$module/$jfxVersion/javafx-$module-$jfxVersion-$classifier.$ext"
|
"$repo/${groupId.replace('.', '/')}/javafx-$module/$version/javafx-$module-$version-$classifier.$ext"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
val jfxModules = listOf("base", "graphics", "controls", "fxml", "media", "web")
|
val jfxModules = listOf("base", "graphics", "controls", "fxml", "media", "web")
|
||||||
val jfxVersion = "17"
|
|
||||||
val jfxMirrorRepos = listOf("https://maven.aliyun.com/repository/central")
|
val jfxMirrorRepos = listOf("https://maven.aliyun.com/repository/central")
|
||||||
val jfxDependenciesFile = project("HMCL").buildDir.resolve("openjfx-dependencies.json")
|
val jfxDependenciesFile = project("HMCL").buildDir.resolve("openjfx-dependencies.json")
|
||||||
val jfxPlatforms = listOf(
|
val jfxPlatforms = listOf(
|
||||||
@@ -69,10 +70,11 @@ if (!jfxInClasspath && JavaVersion.current() >= JavaVersion.VERSION_11) {
|
|||||||
val platform = jfxPlatforms.find { it.name == "$os-arch" }
|
val platform = jfxPlatforms.find { it.name == "$os-arch" }
|
||||||
if (platform != null) {
|
if (platform != null) {
|
||||||
val groupId = platform.groupId
|
val groupId = platform.groupId
|
||||||
|
val version = platform.version
|
||||||
val classifier = platform.classifier
|
val classifier = platform.classifier
|
||||||
rootProject.subprojects {
|
rootProject.subprojects {
|
||||||
for (module in jfxModules) {
|
for (module in jfxModules) {
|
||||||
dependencies.add("compileOnly", "$groupId:javafx-$module:$jfxVersion:$classifier")
|
dependencies.add("compileOnly", "$groupId:javafx-$module:$version:$classifier")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,7 +91,7 @@ rootProject.tasks.create("generateOpenJFXDependencies") {
|
|||||||
"module" to "javafx.$module",
|
"module" to "javafx.$module",
|
||||||
"groupId" to platform.groupId,
|
"groupId" to platform.groupId,
|
||||||
"artifactId" to "javafx-$module",
|
"artifactId" to "javafx-$module",
|
||||||
"version" to jfxVersion,
|
"version" to platform.version,
|
||||||
"classifier" to platform.classifier,
|
"classifier" to platform.classifier,
|
||||||
"sha1" to platform.fileUrl(module, platform.classifier, "jar.sha1").readText()
|
"sha1" to platform.fileUrl(module, platform.classifier, "jar.sha1").readText()
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user