mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2024-11-23 17:00:52 +01:00
Upgraded to java 17, switched to gradle, added new G-Mem for mac
- uses badass runtime plugin to create platform-specific images (https://badass-runtime-plugin.beryx.org/releases/latest/). - uses kotlin based gradle build script. - uses openjfx's plugin to obtain the required javafx modules - added G-Wasm jar to repo for now, maven link is broken for me - added g_mem_mac executable (https://github.com/dorving/g_mem_mac) - added MacOS readable icon (.icns format) - removed unused and broken imports from PortRequester.java and GEarth.java - added GEarthLauncher.java (see docs for reason)
This commit is contained in:
parent
8cd429cc23
commit
4e2415f671
124
G-Earth/build.gradle.kts
Normal file
124
G-Earth/build.gradle.kts
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
import org.gradle.internal.os.OperatingSystem
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("org.beryx.runtime") version "1.12.5"
|
||||||
|
id("org.openjfx.javafxplugin") version "0.0.11"
|
||||||
|
`java-library`
|
||||||
|
}
|
||||||
|
|
||||||
|
description = "G-Earth"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(files("libs/G-Wasm-Minimal-1.0.3.jar"))
|
||||||
|
implementation("at.favre.lib:bytes:1.5.0")
|
||||||
|
implementation("com.github.tulskiy:jkeymaster:1.3")
|
||||||
|
implementation("com.github.ganskef:littleproxy-mitm:1.1.0")
|
||||||
|
implementation("commons-io:commons-io:2.10.0")
|
||||||
|
implementation("javax.websocket:javax.websocket-api:1.1")
|
||||||
|
implementation("org.apache.maven:maven-artifact:3.6.3")
|
||||||
|
implementation("org.eclipse.jetty:jetty-server:9.4.41.v20210516")
|
||||||
|
implementation("org.eclipse.jetty.websocket:javax-websocket-server-impl:9.4.41.v20210516") {
|
||||||
|
exclude("javax.websocket", "javax.websocket-client-api")
|
||||||
|
}
|
||||||
|
implementation("org.eclipse.jetty:jetty-http:9.4.41.v20210516")
|
||||||
|
implementation("org.fxmisc.richtext:richtextfx:0.10.5")
|
||||||
|
implementation("org.json:json:20190722")
|
||||||
|
implementation("org.jsoup:jsoup:1.14.2")
|
||||||
|
implementation("org.slf4j:slf4j-jdk14:2.0.0-alpha0")
|
||||||
|
}
|
||||||
|
|
||||||
|
java {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
|
||||||
|
javafx {
|
||||||
|
version = "17.0.2"
|
||||||
|
modules(
|
||||||
|
"javafx.base",
|
||||||
|
"javafx.controls",
|
||||||
|
"javafx.fxml",
|
||||||
|
"javafx.graphics",
|
||||||
|
"javafx.media",
|
||||||
|
"javafx.swing",
|
||||||
|
"javafx.web"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
application {
|
||||||
|
mainClass.set("gearth.GEarthLauncher")
|
||||||
|
applicationName = "G-Earth"
|
||||||
|
}
|
||||||
|
|
||||||
|
runtime {
|
||||||
|
addModules(
|
||||||
|
"java.datatransfer", "java.desktop", "java.prefs",
|
||||||
|
"java.logging", "java.naming", "java.net.http",
|
||||||
|
"java.sql", "java.scripting", "java.xml",
|
||||||
|
"jdk.crypto.ec", "jdk.jfr", "jdk.jsobject",
|
||||||
|
"jdk.unsupported", "jdk.unsupported.desktop", "jdk.xml.dom"
|
||||||
|
)
|
||||||
|
launcher {
|
||||||
|
noConsole = true
|
||||||
|
}
|
||||||
|
jpackage {
|
||||||
|
|
||||||
|
val currentOs = OperatingSystem.current()
|
||||||
|
|
||||||
|
val imgType = when {
|
||||||
|
currentOs.isWindows -> "ico"
|
||||||
|
currentOs.isMacOsX -> "icns"
|
||||||
|
else -> "png"
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: add support for dark-theme icon, maybe depending on OS theme.
|
||||||
|
imageOptions.addAll(arrayOf("--icon", "src/main/resources/gearth/ui/themes/G-Earth/logo.$imgType"))
|
||||||
|
|
||||||
|
if (currentOs.isWindows) {
|
||||||
|
installerOptions.addAll(
|
||||||
|
listOf(
|
||||||
|
"--win-per-user-install",
|
||||||
|
"--win-dir-chooser",
|
||||||
|
"--win-menu"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.jpackageImage {
|
||||||
|
doLast {
|
||||||
|
val os = OperatingSystem.current()
|
||||||
|
val outPath = when {
|
||||||
|
os.isWindows -> project.name
|
||||||
|
os.isMacOsX -> "${project.name}.app/Contents"
|
||||||
|
else -> "${project.name}/lib"
|
||||||
|
}
|
||||||
|
copy {
|
||||||
|
val buildResourcesPath = "src/main/resources/build"
|
||||||
|
when {
|
||||||
|
os.isWindows -> {
|
||||||
|
/*
|
||||||
|
TODO: differentiate between 32bit and 64bit windows.
|
||||||
|
*/
|
||||||
|
from("$buildResourcesPath/windows/64bit")
|
||||||
|
include("G-Mem.exe")
|
||||||
|
}
|
||||||
|
os.isMacOsX -> {
|
||||||
|
from("$buildResourcesPath/mac")
|
||||||
|
/*
|
||||||
|
* The`g_mem_mac` executable is generated by a modified version of the G-Mem program.
|
||||||
|
*
|
||||||
|
* Which can be found here: https://github.com/dorving/g_mem_mac
|
||||||
|
*/
|
||||||
|
include("g_mem_mac")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
into("$buildDir/jpackage/$outPath/app")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
G-Earth/libs/G-Wasm-Minimal-1.0.3.jar
Normal file
BIN
G-Earth/libs/G-Wasm-Minimal-1.0.3.jar
Normal file
Binary file not shown.
@ -3,10 +3,8 @@ package gearth;
|
|||||||
import gearth.misc.AdminValidator;
|
import gearth.misc.AdminValidator;
|
||||||
import gearth.misc.Cacher;
|
import gearth.misc.Cacher;
|
||||||
import gearth.misc.UpdateChecker;
|
import gearth.misc.UpdateChecker;
|
||||||
import gearth.misc.listenerpattern.Observable;
|
|
||||||
import gearth.misc.listenerpattern.ObservableObject;
|
import gearth.misc.listenerpattern.ObservableObject;
|
||||||
import gearth.ui.GEarthController;
|
import gearth.ui.GEarthController;
|
||||||
import gearth.ui.subforms.logger.loggerdisplays.PacketLogger;
|
|
||||||
import gearth.ui.themes.Theme;
|
import gearth.ui.themes.Theme;
|
||||||
import gearth.ui.themes.ThemeFactory;
|
import gearth.ui.themes.ThemeFactory;
|
||||||
import gearth.ui.titlebar.TitleBarConfig;
|
import gearth.ui.titlebar.TitleBarConfig;
|
||||||
@ -19,9 +17,6 @@ import javafx.scene.Scene;
|
|||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.stage.StageStyle;
|
import javafx.stage.StageStyle;
|
||||||
import sun.misc.Cache;
|
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
public class GEarth extends Application {
|
public class GEarth extends Application {
|
||||||
|
|
||||||
|
11
G-Earth/src/main/java/gearth/GEarthLauncher.java
Normal file
11
G-Earth/src/main/java/gearth/GEarthLauncher.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package gearth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <a href="https://stackoverflow.com/questions/52578072/gradle-openjfx11-error-javafx-runtime-components-are-missing">https://stackoverflow.com/questions/52578072/gradle-openjfx11-error-javafx-runtime-components-are-missing</a>">
|
||||||
|
*/
|
||||||
|
public final class GEarthLauncher {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
GEarth.main(args);
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,5 @@
|
|||||||
package gearth.protocol.connection.proxy.unity;
|
package gearth.protocol.connection.proxy.unity;
|
||||||
|
|
||||||
import javafx.beans.InvalidationListener;
|
|
||||||
import org.eclipse.jetty.websocket.jsr356.annotations.JsrParamIdText;
|
|
||||||
|
|
||||||
import javax.websocket.OnOpen;
|
import javax.websocket.OnOpen;
|
||||||
import javax.websocket.Session;
|
import javax.websocket.Session;
|
||||||
import javax.websocket.server.ServerEndpoint;
|
import javax.websocket.server.ServerEndpoint;
|
||||||
|
BIN
G-Earth/src/main/resources/build/mac/g_mem_mac
Executable file
BIN
G-Earth/src/main/resources/build/mac/g_mem_mac
Executable file
Binary file not shown.
BIN
G-Earth/src/main/resources/gearth/ui/themes/G-Earth/logo.icns
Normal file
BIN
G-Earth/src/main/resources/gearth/ui/themes/G-Earth/logo.icns
Normal file
Binary file not shown.
8
settings.gradle.kts
Normal file
8
settings.gradle.kts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* This file was generated by the Gradle 'init' task.
|
||||||
|
*
|
||||||
|
* This project uses @Incubating APIs which are subject to change.
|
||||||
|
*/
|
||||||
|
|
||||||
|
rootProject.name = "G-Earth-Parent"
|
||||||
|
include(":G-Earth")
|
Loading…
Reference in New Issue
Block a user