mirror of
https://github.com/Eaglercraft-Archive/Eaglercraftx-1.8.8-src.git
synced 2025-06-27 18:38:14 -05:00
112 lines
3.1 KiB
Plaintext
112 lines
3.1 KiB
Plaintext
import com.resentclient.oss.eaglercraft.build.impl.js
|
|
import org.teavm.gradle.api.OptimizationLevel
|
|
import org.teavm.gradle.tasks.GenerateJavaScriptTask
|
|
|
|
buildscript {
|
|
dependencies {
|
|
classpath(files("../src/teavmc-classpath/resources"))
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id("java")
|
|
id("org.teavm") version "0.9.2"
|
|
|
|
id("com.resentclient.oss.eaglercraft.build") version "0.0.0"
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
sourceSets {
|
|
named("main") {
|
|
java.srcDirs(
|
|
"../src/teavm/java",
|
|
"../src/teavm-boot-menu/java"
|
|
)
|
|
resources.srcDirs(
|
|
"../src/teavm/resources"
|
|
)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
teavm(teavm.libs.jso)
|
|
teavm(teavm.libs.jsoApis)
|
|
compileOnly("org.teavm:teavm-core:0.9.2") // workaround for a few hacks
|
|
implementation(rootProject)
|
|
implementation(libs.jorbis)
|
|
implementation(libs.bundles.common)
|
|
}
|
|
|
|
val jsFolder = "javascript"
|
|
val jsFileName = "classes.js"
|
|
|
|
teavm.js {
|
|
obfuscated = true
|
|
sourceMap = true
|
|
targetFileName = "../$jsFileName"
|
|
optimization = OptimizationLevel.BALANCED // Change to "AGGRESSIVE" for release
|
|
outOfProcess = false
|
|
fastGlobalAnalysis = false
|
|
processMemory = 512
|
|
entryPointName.set("main")
|
|
mainClass = "net.lax1dude.eaglercraft.v1_8.internal.teavm.MainClass"
|
|
outputDir = file(jsFolder)
|
|
properties = mapOf("java.util.TimeZone.autodetect" to "true")
|
|
debugInformation = false
|
|
}
|
|
|
|
tasks.withType<JavaCompile> {
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
tasks.named<GenerateJavaScriptTask>("generateJavaScript") {
|
|
doLast {
|
|
try {
|
|
// NOTE: This step may break at any time, and is not required for 99% of browsers
|
|
|
|
var phile = file("$jsFolder/$jsFileName")
|
|
var dest = phile.readText()
|
|
var i = dest.substring(0, dest.indexOf("=\$rt_globals.Symbol('jsoClass');")).lastIndexOf("let ")
|
|
dest = dest.substring(0, i) + "var" + dest.substring(i + 3)
|
|
var j = dest.indexOf("function(\$rt_globals,\$rt_exports){")
|
|
dest = dest.substring(
|
|
0,
|
|
j + 34
|
|
) + "\n" + file("$jsFolder/ES6ShimScript.txt").readText() + "\n" + dest.substring(j + 34)
|
|
phile.writeText(dest)
|
|
} catch (ex: Exception) {
|
|
if (teavm.js.obfuscated.get()) {
|
|
logger.info("Error occured while adding support for old browsers failed!", ex)
|
|
logger.info("This was probably caused by building with non-obfuscated javascript, " +
|
|
"you can probably safely ignore this!")
|
|
logger.info("If this error persists with obfuscated javascript, report to ayunami2000!")
|
|
} else {
|
|
logger.info("Adding support for old browsers failed!", ex)
|
|
logger.info("Please contact ayunami2000 and report this!")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
eaglercraftBuild {
|
|
suites {
|
|
js("main") {
|
|
sourceGeneratorOutput = file("$jsFolder/$jsFileName")
|
|
offlineDownloadTemplate = file("javascript/OfflineDownloadTemplate.txt")
|
|
mainOutput = file("$jsFolder/EaglercraftX_1.8_Offline_en_US.html")
|
|
internationalOutput = file("$jsFolder/EaglercraftX_1.8_Offline_International.html")
|
|
}.apply {
|
|
epkSources = file("../desktopRuntime/resources")
|
|
epkOutput = file("$jsFolder/assets.epk")
|
|
|
|
languageMetadataInput = file("$jsFolder/lang")
|
|
languageEpkOutput = file("$jsFolder/lang.tmp.epk")
|
|
|
|
sourceGeneratorTaskName = "generateJavaScript"
|
|
}
|
|
}
|
|
} |