Update #51 - Protocol and FPS improvements, better workspace

This commit is contained in:
lax1dude
2025-05-18 15:01:06 -07:00
parent 71c61e33fd
commit 325a6826bf
1191 changed files with 9266 additions and 187695 deletions

Binary file not shown.

BIN
buildtools/Java17Check.jar Normal file

Binary file not shown.

View File

@ -471,7 +471,7 @@ public class CompileLatestClientFrame {
txtpnfuckOffwelcome.setEditable(false);
txtpnfuckOffwelcome.setMargin(new Insets(10, 10, 10, 10));
txtpnfuckOffwelcome.setContentType("text/html");
txtpnfuckOffwelcome.setText("<html>\r\n<head><title>fuck off</title></head>\r\n<body style=\"font-family:sans-serif;margin:0px;\">\r\n<p style=\"font-size:17px;\">Welcome to the EaglercraftX 1.8 Client Compiler</p>\r\n<p style=\"font-size:11px;\">This tool will allow you to automatically compile the latest version of the EaglercraftX 1.8 client using the files in this repository.</p>\r\n<p style=\"font-size:11px;\">You are required to download several required files manually in order to better respect the Microsoft/Mojang TOS. The links to these files will be provided.</p>\r\n<p style=\"font-size:11px;\">To view or modify portions of the EaglercraftX 1.8 source code directly, please use the other batch files to generate a gradle project instead of compiling the javascript files directly</p>\r\n<p style=\"font-size:11px;\">If you are from Microsoft/Mojang or the developer of MCP trying to get dirt on me, please just let me live my life, the repository does not contain your intellectual property. Using this code to play your game for free is not the default behavior of the gateway plugin or this compiler utility and is not encouraged by the documentation</p>\r\n</body>\r\n</html>");
txtpnfuckOffwelcome.setText("<html>\r\n<head><title>fuck off</title></head>\r\n<body style=\"font-family:sans-serif;margin:0px;\">\r\n<p style=\"font-size:17px;\">Welcome to the EaglercraftX 1.8 Client Compiler</p>\r\n<p style=\"font-size:11px;\">This tool will allow you to automatically compile the latest version of the EaglercraftX 1.8 client using the files in this repository.</p>\r\n<p style=\"font-size:11px;\">You are required to download several required files manually in order to better respect the Microsoft/Mojang TOS. The links to these files will be provided.</p>\r\n<p style=\"font-size:11px;\">To view or modify portions of the EaglercraftX 1.8 source code directly, please use the other batch files to generate a gradle project instead of compiling the javascript files directly</p>\r\n<p style=\"font-size:11px;\">This tool will only build the JavaScript client, to build WASM-GC please create a workspace and use the Gradle project to build it instead.</p>\r\n</body>\r\n</html>");
pageHome.add(txtpnfuckOffwelcome, BorderLayout.CENTER);
JPanel pageLicense = new JPanel();

View File

@ -66,16 +66,16 @@ public class CompileLatestClientGUI {
| UnsupportedLookAndFeelException e) {
System.err.println("Could not set system look and feel: " + e.toString());
}
if(!System.getProperty("eaglercraft.isJava11", "false").equalsIgnoreCase("true")) {
if(!System.getProperty("eaglercraft.isJava17", "false").equalsIgnoreCase("true")) {
try {
if (!(boolean) Class
.forName("net.lax1dude.eaglercraft.v1_8.buildtools.Java11Check", true,
new URLClassLoader(new URL[] { (new File("buildtools/Java11Check.jar")).toURI().toURL() }))
.forName("net.lax1dude.eaglercraft.v1_8.buildtools.Java17Check", true,
new URLClassLoader(new URL[] { (new File("buildtools/Java17Check.jar")).toURI().toURL() }))
.getMethod("classLoadCheck").invoke(null)) {
throw new RuntimeException("wtf?");
}
}catch(Throwable t) {
JOptionPane.showMessageDialog(null, "Error: Java 11 is required to run this program", "Unsupported JRE", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, "Error: Java 17 is required to run this program", "Unsupported JRE", JOptionPane.ERROR_MESSAGE);
System.exit(-1);
return;
}
@ -90,7 +90,7 @@ public class CompileLatestClientGUI {
System.setErr(new PrintStream(new ConsoleRedirector(true)));
if(JavaC.jdkHome == null) {
if(JOptionPane.showConfirmDialog(frame.frmCompileLatestClient, "Error: A JDK is required to run this program!\nYou are currently running on a JRE\nDo you have a JDK installed that you would like to use instead?", "Unsupported JRE", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
JOptionPane.showMessageDialog(frame.frmCompileLatestClient, "You need at least JDK 8 to compile EaglercraftX 1.8!\nSelect the path to the installation you want to use", "Unsupported JRE", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(frame.frmCompileLatestClient, "You need at least JDK 17 to compile EaglercraftX 1.8!\nSelect the path to the installation you want to use", "Unsupported JRE", JOptionPane.INFORMATION_MESSAGE);
JFileChooser fileChooser = new JFileChooser((new File(System.getProperty("java.home"))).getParentFile());
fileChooser.setMultiSelectionEnabled(false);
fileChooser.setFileHidingEnabled(false);
@ -106,7 +106,7 @@ public class CompileLatestClientGUI {
}
}
}
JOptionPane.showMessageDialog(frame.frmCompileLatestClient, "Please install JDK 8 or newer to continue", "Unsupported JRE", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(frame.frmCompileLatestClient, "Please install JDK 17 or newer to continue", "Unsupported JRE", JOptionPane.ERROR_MESSAGE);
System.exit(-1);
return;
}
@ -256,6 +256,7 @@ public class CompileLatestClientGUI {
new File(repositoryFolder, "sources/protocol-game/java"),
new File(repositoryFolder, "sources/protocol-relay/java"),
new File(repositoryFolder, "sources/teavm/java"),
new File(repositoryFolder, "sources/teavm/resources"),
new File(repositoryFolder, "sources/teavm-boot-menu/java"));
}catch(IOException ex) {
throw new CompileFailureException("failed to run javac compiler! " + ex.toString(), ex);
@ -331,11 +332,11 @@ public class CompileLatestClientGUI {
File classesJS = new File(outputDirectory, "classes.js");
if(!ES6Compat.patchClassesJS(classesJS, new File(repositoryFolder, "sources/setup/workspace_template/javascript/ES6ShimScript.txt"))) {
if(!ES6Compat.patchClassesJS(classesJS, new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/javascript/ES6ShimScript.txt"))) {
System.err.println("Error: could not inject shim, continuing anyway because it is not required");
}
File epkCompiler = new File(repositoryFolder, "sources/setup/workspace_template/desktopRuntime/CompileEPK.jar");
File epkCompiler = new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/buildtools/CompileEPK.jar");
if(!epkCompiler.exists()) {
throw new CompileFailureException("EPKCompiler JAR file is missing: " + epkCompiler.getAbsolutePath());
@ -390,9 +391,9 @@ public class CompileLatestClientGUI {
if(generateOfflineDownload) {
System.out.println("Running offline download generator...");
System.out.println();
File offlineDownloadGenerator = new File(repositoryFolder, "sources/setup/workspace_template/desktopRuntime/MakeOfflineDownload.jar");
File offlineDownloadGenerator = new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/buildtools/MakeOfflineDownload.jar");
MakeOfflineDownload.compilerMain(offlineDownloadGenerator, new String[] {
(new File(repositoryFolder, "sources/setup/workspace_template/javascript/OfflineDownloadTemplate.txt")).getAbsolutePath(),
(new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/javascript/OfflineDownloadTemplate.txt")).getAbsolutePath(),
classesJS.getAbsolutePath(), (new File(outputDirectory, "assets.epk")).getAbsolutePath(),
(new File(outputDirectory, "EaglercraftX_1.8_Offline_en_US.html")).getAbsolutePath(),
(new File(outputDirectory, "EaglercraftX_1.8_Offline_International.html")).getAbsolutePath(),

View File

@ -37,7 +37,7 @@ public class JavaC {
public static final List<String> compilerFlags = Arrays.asList(
"-Xlint:-unchecked", "-Xlint:-options", "-Xlint:-deprecation",
"-source", "1.8", "-target", "1.8", "-encoding", "utf8"
"-source", "17", "-target", "17", "-encoding", "utf8"
);
private static int debugSourceFileCount = 0;

View File

@ -62,12 +62,16 @@ public class TeaVMBinaries {
public static final MavenJAREntry teavmMetaprogrammingImpl = new MavenJAREntry("org/teavm/teavm-metaprogramming-impl/0.9.2/teavm-metaprogramming-impl-0.9.2.jar");
public static final MavenJAREntry teavmJodaTime = new MavenJAREntry("joda-time/joda-time/2.12.2/joda-time-2.12.2.jar");
public static final MavenJAREntry teavmJZLIB = new MavenJAREntry("com/jcraft/jzlib/1.1.3/jzlib-1.1.3.jar");
public static final MavenJAREntry depJOrbis = new MavenJAREntry("org/jcraft/jorbis/0.0.17/jorbis-0.0.17.jar");
public static final MavenJAREntry depLang3 = new MavenJAREntry("org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar");
public static final MavenJAREntry depHPPC = new MavenJAREntry("com/carrotsearch/hppc/0.10.0/hppc-0.10.0.jar");
public static final MavenJAREntry depJSR305 = new MavenJAREntry("com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar");
private static final MavenJAREntry[] jarsList = new MavenJAREntry[] { teavmCore, teavmCli, teavmTooling,
teavmPlatform, teavmClasslib, teavmInterop, teavmJSO, teavmJSOApis, teavmJSOImpl, teavmRelocatedLibsASM,
teavmRelocatedLibsASMAnalysis, teavmRelocatedLibsASMCommons, teavmRelocatedLibsASMTree,
teavmRelocatedLibsASMUtil, teavmRelocatedLibsHPPC, teavmRelocatedLibsRhino, teavmMetaprogrammingAPI,
teavmMetaprogrammingImpl, teavmJodaTime, teavmJZLIB };
teavmMetaprogrammingImpl, teavmJodaTime, teavmJZLIB, depJOrbis, depLang3, depHPPC, depJSR305 };
public static File teavmBridge = null;
@ -201,10 +205,12 @@ public class TeaVMBinaries {
public static String[] getTeaVMRuntimeClasspath() {
return new String[] { teavmJodaTime.file.getAbsolutePath(), teavmJZLIB.file.getAbsolutePath(),
teavmClasslib.file.getAbsolutePath(), teavmInterop.file.getAbsolutePath(), teavmJSO.file.getAbsolutePath(),
teavmJSOApis.file.getAbsolutePath(), teavmJSOImpl.file.getAbsolutePath(),
teavmMetaprogrammingAPI.file.getAbsolutePath(), teavmMetaprogrammingImpl.file.getAbsolutePath(),
teavmPlatform.file.getAbsolutePath(), teavmCore.file.getAbsolutePath() };
teavmClasslib.file.getAbsolutePath(), teavmInterop.file.getAbsolutePath(),
teavmJSO.file.getAbsolutePath(), teavmJSOApis.file.getAbsolutePath(),
teavmJSOImpl.file.getAbsolutePath(), teavmMetaprogrammingAPI.file.getAbsolutePath(),
teavmMetaprogrammingImpl.file.getAbsolutePath(), teavmPlatform.file.getAbsolutePath(),
teavmCore.file.getAbsolutePath(), depJOrbis.file.getAbsolutePath(), depLang3.file.getAbsolutePath(),
depHPPC.file.getAbsolutePath(), depJSR305.file.getAbsolutePath() };
}
}

View File

@ -62,7 +62,7 @@ public class CompileLatestClientHeadless {
System.out.println();
System.out.println("Launching client compiler...");
System.out.println("Copyright (c) 2022-2024 lax1dude");
System.out.println("Copyright (c) 2022-2025 lax1dude");
System.out.println();
boolean yes = false;
@ -327,6 +327,7 @@ public class CompileLatestClientHeadless {
new File(repositoryFolder, "sources/protocol-game/java"),
new File(repositoryFolder, "sources/protocol-relay/java"),
new File(repositoryFolder, "sources/teavm/java"),
new File(repositoryFolder, "sources/teavm/resources"),
new File(repositoryFolder, "sources/teavm-boot-menu/java"));
}catch(IOException ex) {
throw new CompileFailureException("failed to run javac compiler! " + ex.toString(), ex);
@ -404,11 +405,11 @@ public class CompileLatestClientHeadless {
File classesJS = new File(outputDirectory, "classes.js");
if(!ES6Compat.patchClassesJS(classesJS, new File(repositoryFolder, "sources/setup/workspace_template/javascript/ES6ShimScript.txt"))) {
if(!ES6Compat.patchClassesJS(classesJS, new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/javascript/ES6ShimScript.txt"))) {
System.err.println("Error: could not inject shim, continuing anyway because it is not required");
}
File epkCompiler = new File(repositoryFolder, "sources/setup/workspace_template/desktopRuntime/CompileEPK.jar");
File epkCompiler = new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/buildtools/CompileEPK.jar");
if(!epkCompiler.exists()) {
throw new CompileFailureException("EPKCompiler JAR file is missing: " + epkCompiler.getAbsolutePath());
@ -586,7 +587,7 @@ public class CompileLatestClientHeadless {
}
}
}
File offlineDownloadGenerator = new File(repositoryFolder, "sources/setup/workspace_template/desktopRuntime/MakeOfflineDownload.jar");
File offlineDownloadGenerator = new File(repositoryFolder, "sources/setup/workspace_template/target_teavm_javascript/buildtools/MakeOfflineDownload.jar");
MakeOfflineDownload.compilerMain(offlineDownloadGenerator, new String[] {
offlineTemplateArg.getAbsolutePath(),
classesJS.getAbsolutePath(), (new File(outputDirectory, "assets.epk")).getAbsolutePath(),

View File

@ -68,7 +68,9 @@ public class PullRequestTask {
File originalSourceMain = new File(EaglerBuildTools.repositoryRoot, "sources/main/java");
File originalSourceProtoGame = new File(EaglerBuildTools.repositoryRoot, "sources/protocol-game/java");
File originalSourceProtoRelay = new File(EaglerBuildTools.repositoryRoot, "sources/protocol-relay/java");
File originalSourcePlatformAPI = new File(EaglerBuildTools.repositoryRoot, "sources/platform-api/java");
File originalSourceTeaVM = new File(EaglerBuildTools.repositoryRoot, "sources/teavm/java");
File originalSourceTeaVMRes = new File(EaglerBuildTools.repositoryRoot, "sources/teavm/resources");
File originalSourceTeaVMC = new File(EaglerBuildTools.repositoryRoot, "sources/teavmc-classpath/resources");
File originalSourceBootMenu = new File(EaglerBuildTools.repositoryRoot, "sources/teavm-boot-menu/java");
File originalSourceLWJGL = new File(EaglerBuildTools.repositoryRoot, "sources/lwjgl/java");
@ -84,7 +86,9 @@ public class PullRequestTask {
File diffFromGame = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/game/java");
File diffFromProtoGame = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/protocol-game/java");
File diffFromProtoRelay = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/protocol-relay/java");
File diffFromPlatformAPI = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/platform-api/java");
File diffFromTeaVM = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/teavm/java");
File diffFromTeaVMRes = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/teavm/resources");
File diffFromBootMenu = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/teavm-boot-menu/java");
File diffFromTeaVMC = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/teavmc-classpath/resources");
File diffFromLWJGL = new File(EaglerBuildToolsConfig.getWorkspaceDirectory(), "src/lwjgl/java");
@ -149,12 +153,24 @@ public class PullRequestTask {
}
System.out.println("Found " + i + " changed files in /src/protocol-relay/java/");
i = copyAllModified(diffFromPlatformAPI, originalSourcePlatformAPI);
if(i > 0) {
flag = true;
}
System.out.println("Found " + i + " changed files in /src/platform-api/java/");
i = copyAllModified(diffFromTeaVM, originalSourceTeaVM);
if(i > 0) {
flag = true;
}
System.out.println("Found " + i + " changed files in /src/teavm/java/");
i = copyAllModified(diffFromTeaVMRes, originalSourceTeaVMRes);
if(i > 0) {
flag = true;
}
System.out.println("Found " + i + " changed files in /src/teavm/resources/");
i = copyAllModified(diffFromBootMenu, originalSourceBootMenu);
if(i > 0) {
flag = true;

View File

@ -124,9 +124,11 @@ public class SetupWorkspace {
File repoSourcesSetup = new File(repoSources, "setup/workspace_template");
File repoSourcesMain = new File(repoSources, "main/java");
File repoSourcesTeaVM = new File(repoSources, "teavm/java");
File repoSourcesTeaVMRes = new File(repoSources, "teavm/resources");
File repoSourcesLWJGL = new File(repoSources, "lwjgl/java");
File repoSourcesProtoGame = new File(repoSources, "protocol-game/java");
File repoSourcesProtoRelay = new File(repoSources, "protocol-relay/java");
File repoSourcesPlatformAPI = new File(repoSources, "platform-api/java");
File repoSourcesBootMenu = new File(repoSources, "teavm-boot-menu/java");
File repoSourcesTeavmCRes = new File(repoSources, "teavmc-classpath/resources");
File repoSourcesWASMGCTeaVMJava = new File(repoSources, "wasm-gc-teavm/java");
@ -139,8 +141,10 @@ public class SetupWorkspace {
File srcGameJava = new File(workspaceDirectory, "src/game/java");
File srcLWJGLJava = new File(workspaceDirectory, "src/lwjgl/java");
File srcTeaVMJava = new File(workspaceDirectory, "src/teavm/java");
File srcTeaVMRes = new File(workspaceDirectory, "src/teavm/resources");
File srcProtoGame = new File(workspaceDirectory, "src/protocol-game/java");
File srcProtoRelay = new File(workspaceDirectory, "src/protocol-relay/java");
File srcPlatformAPI = new File(workspaceDirectory, "src/platform-api/java");
File srcBootMenu = new File(workspaceDirectory, "src/teavm-boot-menu/java");
File srcTeavmCRes = new File(workspaceDirectory, "src/teavmc-classpath/resources");
File srcWASMGCTeaVMJava = new File(workspaceDirectory, "src/wasm-gc-teavm/java");
@ -150,7 +154,9 @@ public class SetupWorkspace {
File srcWASMGCTeaVMLoaderJS = new File(workspaceDirectory, "src/wasm-gc-teavm-loader/js");
File resourcesExtractTo = new File(workspaceDirectory, "desktopRuntime/resources");
File mcLanguagesZip = new File(mcTmpDirectory, "minecraft_languages.zip");
File mcLanguagesExtractTo = new File(workspaceDirectory, "javascript/lang");
File localLibsZip = new File(repoSources, "setup/local-libs.zip");
File mcLanguagesExtractTo = new File(workspaceDirectory, "target_teavm_javascript/javascript/lang");
File localLibsExtractTo = new File(workspaceDirectory, "gradle/local-libs");
System.out.println("Copying files from \"/setup/workspace_template/\" to \"" + workspaceDirectory.getName() + "\"...");
@ -161,23 +167,19 @@ public class SetupWorkspace {
throw ex;
}
String os = System.getProperty("os.name").toLowerCase();
if(os.contains("linux") || os.contains("macos") || os.contains("osx")) {
File gradleW = new File(workspaceDirectory, "gradlew");
if(!gradleW.setExecutable(true)) {
System.err.println("ERROR: could not set executable bit on 'gradlew'!");
System.err.println("Enter the root directory of the repository and run 'chmod +x gradlew' if you need access to the gradlew command");
}
}
File existingGi = new File(workspaceDirectory, ".gitignore");
if((existingGi.exists() && !existingGi.delete()) || !(new File(workspaceDirectory, ".gitignore.default").renameTo(existingGi))) {
System.err.println("ERROR: Could not rename \".gitignore.default\" to \".gitignore\" in the workspace directory!");
}
existingGi = new File(workspaceDirectory, "wasm_gc_teavm/.gitignore");
if((existingGi.exists() && !existingGi.delete()) || !(new File(workspaceDirectory, "wasm_gc_teavm/.gitignore.default").renameTo(existingGi))) {
System.err.println("ERROR: Could not rename \"wasm_gc_teavm/.gitignore.default\" to \"wasm_gc_teavm/.gitignore\" in the workspace directory!");
existingGi = new File(workspaceDirectory, "target_teavm_javascript/.gitignore");
if((existingGi.exists() && !existingGi.delete()) || !(new File(workspaceDirectory, "target_teavm_javascript/.gitignore.default").renameTo(existingGi))) {
System.err.println("ERROR: Could not rename \"target_teavm_javascript/.gitignore.default\" to \"target_teavm_javascript/.gitignore\" in the workspace directory!");
}
existingGi = new File(workspaceDirectory, "target_teavm_wasm_gc/.gitignore");
if((existingGi.exists() && !existingGi.delete()) || !(new File(workspaceDirectory, "target_teavm_wasm_gc/.gitignore.default").renameTo(existingGi))) {
System.err.println("ERROR: Could not rename \"target_teavm_wasm_gc/.gitignore.default\" to \"target_teavm_wasm_gc/.gitignore\" in the workspace directory!");
}
if(repoSourcesTeaVM.isDirectory()) {
@ -195,6 +197,21 @@ public class SetupWorkspace {
}
}
if(repoSourcesTeaVMRes.isDirectory()) {
System.out.println("Copying files from \"/sources/teavm/resources/\" to workspace...");
try {
if(!srcTeaVMRes.isDirectory() && !srcTeaVMRes.mkdirs()) {
System.err.println("ERROR: Could not create destination directory!");
return false;
}
FileUtils.copyDirectory(repoSourcesTeaVMRes, srcTeaVMRes);
}catch(IOException ex) {
System.err.println("ERROR: could not copy \"/sources/teavm/resources/\" to \"" + srcTeaVMRes.getAbsolutePath() + "\"!");
throw ex;
}
}
System.out.println("Copying files from \"/sources/main/java/\" to workspace...");
try {
@ -238,6 +255,21 @@ public class SetupWorkspace {
}
}
if(repoSourcesPlatformAPI.isDirectory()) {
System.out.println("Copying files from \"/sources/platform-api/java/\" to workspace...");
try {
if(!srcPlatformAPI.isDirectory() && !srcPlatformAPI.mkdirs()) {
System.err.println("ERROR: Could not create destination directory!");
return false;
}
FileUtils.copyDirectory(repoSourcesPlatformAPI, srcPlatformAPI);
}catch(IOException ex) {
System.err.println("ERROR: could not copy \"/sources/platform-api/java/\" to \"" + srcPlatformAPI.getAbsolutePath() + "\"!");
throw ex;
}
}
if(repoSourcesTeavmCRes.isDirectory()) {
System.out.println("Copying files from \"/sources/teavmc-classpath/resources/\" to workspace...");
@ -448,7 +480,7 @@ public class SetupWorkspace {
minecraftResJar.delete();
}
System.out.println("Extracting files from \"minecraft_languages.zip\" to \"/javascript/lang/\"...");
System.out.println("Extracting files from \"minecraft_languages.zip\" to \"/target_teavm_javascript/javascript/lang/\"...");
try {
extractJarTo(mcLanguagesZip, mcLanguagesExtractTo);
@ -458,12 +490,22 @@ public class SetupWorkspace {
throw ex;
}
System.out.println("Creating eclipse project for desktop runtime...");
if(!createDesktopRuntimeProject(new File(repoSources, "setup/eclipseProjectFiles"), workspaceDirectory)) {
System.err.println("ERROR: could not create eclipse project for desktop runtime!");
return false;
System.out.println("Extracting files from \"local-libs.zip\" to \"/gradle/local-libs/\"...");
try {
extractJarTo(localLibsZip, localLibsExtractTo);
}catch(IOException ex) {
System.err.println("ERROR: could not extract \"" + localLibsZip.getName() + "\" to \"" +
localLibsExtractTo.getAbsolutePath() + "\"!");
throw ex;
}
// System.out.println("Creating eclipse project for desktop runtime...");
// if(!createDesktopRuntimeProject(new File(repoSources, "setup/eclipseProjectFiles"), workspaceDirectory)) {
// System.err.println("ERROR: could not create eclipse project for desktop runtime!");
// return false;
// }
return true;
}
@ -497,6 +539,7 @@ public class SetupWorkspace {
return cnt;
}
@Deprecated
private static boolean createDesktopRuntimeProject(File templateFolderIn, File workspaceDirectory) throws Throwable {
File desktopRuntimeDirectory = new File(workspaceDirectory, "desktopRuntime");
File desktopRuntimeProjectDir = new File(desktopRuntimeDirectory, "eclipseProject");