diff --git a/HMCL/build.gradle b/HMCL/build.gradle index df27df578..1d98226c4 100644 --- a/HMCL/build.gradle +++ b/HMCL/build.gradle @@ -175,6 +175,7 @@ processResources { def bssFile = new File(this.projectDir, "build/compiled-resources/" + resource[0..-4] + "bss") bssFile.parentFile.mkdirs() javaexec { + classpath = sourceSets.main.compileClasspath mainClass = "com.sun.javafx.css.parser.Css2Bin" args = [cssFile, bssFile] } diff --git a/build.gradle b/build.gradle index 444942b18..98e6605de 100644 --- a/build.gradle +++ b/build.gradle @@ -66,6 +66,67 @@ var jfxUnsupported = [ 'linux-arm32-monocle': ['media', 'web'] ] +var jfxInClasspath = false + +try { + Class.forName("javafx.application.Application", false, this.getClass().getClassLoader()) + jfxInClasspath = true +} catch (Throwable ignored) { +} + +if (!jfxInClasspath && JavaVersion.current() >= JavaVersion.VERSION_11) { + String os = null + String arch = null + + String osName = System.getProperty("os.name").toLowerCase(Locale.US) + if (osName.contains("win")) + os = 'win' + else if (osName.contains("mac")) + os = 'mac' + else if (osName.contains("solaris") || osName.contains("linux") || osName.contains("unix") || osName.contains("sunos")) + os = 'linux' + else + os = null + + String archName = System.getProperty("os.arch").toLowerCase(Locale.US) + switch (archName) { + case "x86_64": + case "x86-64": + case "amd64": + arch = '' + break + case "x86": + case "x86_32": + case "x86-32": + case "i386": + case "i486": + case "i586": + case "i686": + case "i86pc": + arch = '-x86' + break + case "aarch64": + arch = '-aarch64'; + break + } + String platform = "$os$arch" + + if (os != null && arch != null && jfxArches.contains(platform)) { + var jfxDependencies = jfxModules.collect { module -> "org.openjfx:javafx-$module:$jfxVersion:$platform" } + + subprojects { + repositories { + mavenCentral() + } + dependencies { + jfxDependencies.forEach { + compileOnly it + } + } + } + } +} + import com.google.gson.* task 'generateOpenJFXDependencies' {