diff --git a/android/build.gradle b/android/build.gradle index e24bbab771..b1b9ef5628 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ buildscript{ } dependencies{ - classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.android.tools.build:gradle:3.5.0' } } diff --git a/build.gradle b/build.gradle index adc3e55d78..1da7711583 100644 --- a/build.gradle +++ b/build.gradle @@ -314,3 +314,24 @@ project(":net"){ compile "org.lz4:lz4-java:1.4.1" } } + +task deployAll{ + task cleanDeployOutput{ + doFirst{ + if("${getBuildVersion()}" == "custom build") throw new IllegalArgumentException("----\n\nSET A BUILD NUMBER FIRST!\n\n----") + if(!project.hasProperty("release")) throw new IllegalArgumentException("----\n\nSET THE RELEASE PROJECT PROPERTY FIRST!\n\n----") + + delete{ + delete "deploy/" + } + } + } + + dependsOn cleanDeployOutput + dependsOn "desktop-sdl:packrLinux64" + dependsOn "desktop-sdl:packrWindows64" + dependsOn "desktop-sdl:packrWindows32" + dependsOn "desktop-sdl:packrMacOS" + dependsOn "server:deploy" + dependsOn "android:deploy" +} \ No newline at end of file diff --git a/core/assets/maps/veins.msav b/core/assets/maps/veins.msav index 24fcb45cb5..133d783abc 100644 Binary files a/core/assets/maps/veins.msav and b/core/assets/maps/veins.msav differ diff --git a/core/src/io/anuke/mindustry/content/TechTree.java b/core/src/io/anuke/mindustry/content/TechTree.java index 6ca60ed2c1..10930e51a5 100644 --- a/core/src/io/anuke/mindustry/content/TechTree.java +++ b/core/src/io/anuke/mindustry/content/TechTree.java @@ -227,12 +227,14 @@ public class TechTree implements ContentList{ node(turbineGenerator, () -> { node(thermalGenerator, () -> { - node(rtgGenerator, () -> { - node(differentialGenerator, () -> { - node(thoriumReactor, () -> { - node(impactReactor, () -> { + node(differentialGenerator, () -> { + node(thoriumReactor, () -> { + node(impactReactor, () -> { + + }); + + node(rtgGenerator, () -> { - }); }); }); }); diff --git a/desktop-sdl/build.gradle b/desktop-sdl/build.gradle index 006fda77da..a0b37f4579 100644 --- a/desktop-sdl/build.gradle +++ b/desktop-sdl/build.gradle @@ -1,3 +1,6 @@ +import com.badlogicgames.packr.Packr +import com.badlogicgames.packr.PackrConfig + apply plugin: "java" sourceCompatibility = 1.8 @@ -7,7 +10,10 @@ project.ext.mainClassName = "io.anuke.mindustry.desktopsdl.DesktopLauncher" project.ext.assetsDir = new File("../core/assets") def IKVM_DIR = System.env.IKVM_HOME -def getTarget = { return project.hasProperty("target") ? project.properties["target"] : "windows" } +//def getTarget = { return project.hasProperty("target") ? project.properties["target"] : "windows" } + +def JDK_DIR = "$System.env.PACKR_DIR" +def ICON_DIR = new File("core/assets/icons/icon.icns") task run(dependsOn: classes, type: JavaExec){ main = project.mainClassName @@ -29,24 +35,27 @@ task run(dependsOn: classes, type: JavaExec){ } } -task dist(type: Jar, dependsOn: classes){ - from files(sourceSets.main.output.classesDirs) - from files(sourceSets.main.output.resourcesDir) - from {configurations.compile.collect {zipTree(it)}} - from files(project.assetsDir) - //use target = all for all platforms - def target = getTarget() - if(target.contains("windows")) exclude('**.so', "**.dylib") - if(target == "mac") exclude('**.so', "**.dll") - if(target == "linux") exclude('**.dll', "**.dylib") - archivesBaseName = appName + "-" + target - manifest{ - attributes 'Main-Class': project.mainClassName +["Windows", "Linux", "Mac", "All"].each{ target -> + task "dist$target"(type: Jar, dependsOn: classes){ + from files(sourceSets.main.output.classesDirs) + from files(sourceSets.main.output.resourcesDir) + from {configurations.compile.collect {zipTree(it)}} + from files(project.assetsDir) + + if(target.contains("windows")) exclude('**.so', "**.dylib") + if(target == "mac") exclude('**.so', "**.dll") + if(target == "linux") exclude('**.dll', "**.dylib") + archiveName = "$appName-${target}.jar" + + manifest{ + attributes 'Main-Class': project.mainClassName + } } } +/* task ikZip(type: Zip){ def filename = "$appName-${getTarget()}-${version}" @@ -83,5 +92,85 @@ task ikdist{ into folder } } -} +}*/ +PackrConfig.Platform.values().each{ platform -> + task "packr${platform.toString()}"{ + def platformName = platform.toString().replace('64', '').replace('32', '').replace('MacOS', 'Mac') + + dependsOn "dist$platformName" + + doLast{ + copy{ + into "build/packr/" + rename("$appName-${platformName}.jar", "desktop.jar") + from "build/libs/$appName-${platformName}.jar" + } + + delete{ + delete "build/packr/output/" + } + + if(platform == PackrConfig.Platform.Windows32 || platform == PackrConfig.Platform.Windows64){ + copy{ + into "build/packr/output" + from "${JDK_DIR}/templates/${platform.toString().toLowerCase()}" + } + + copy{ + into "build/packr/output" + rename("$appName-${platformName}.jar", "desktop.jar") + from "build/libs/$appName-${platformName}.jar" + } + }else{ + def config = new PackrConfig() + config.with{ + config.executable = appName + config.platform = platform + verbose = true + bundleIdentifier = getPackage() + ".mac" + iconResource = ICON_DIR + outDir = file("build/packr/output") + mainClass = project.ext.mainClassName + classpath = ["desktop-sdl/build/packr/desktop.jar"] + removePlatformLibs = ["desktop-sdl/build/packr/desktop.jar"] + + vmArgs = ["Djava.net.preferIPv4Stack=true"] + minimizeJre = "../desktop/packr_minimize.json" + jdk = JDK_DIR + "jdk-${platform.toString().toLowerCase()}.zip" + + if(platform == PackrConfig.Platform.MacOS){ + vmArgs += "XstartOnFirstThread" + } + } + + new Packr().pack(config) + + if(platform == PackrConfig.Platform.MacOS){ + copy{ + into "build/packr/" + appName + ".app/Contents/" + from "build/packr/Contents/" + } + + delete{ + delete "build/packr/Contents/" + } + } + } + } + + task "zip${platform.toString()}"(type: Zip){ + from "build/packr/output" + archiveName "${generateDeployName(platform.toString())}.zip" + destinationDir(file("../deploy")) + + doLast{ + delete{ + delete "build/packr/" + } + } + } + + finalizedBy "zip${platform.toString()}" + } +} diff --git a/desktop/build.gradle b/desktop/build.gradle index 65139a81c3..d0d542bdb1 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -14,6 +14,7 @@ import com.badlogicgames.packr.PackrConfig def JDK_DIR = "$System.env.PACKR_DIR" def ICON_DIR = new File("core/assets/icons/icon.icns") +/* ext.getPlatform = { def lc = project.hasProperty("platform") ? platform.toLowerCase() : "" if(lc == "windows64"){ @@ -27,7 +28,7 @@ ext.getPlatform = { }else{ throw new InvalidUserDataException("Invalid platform. Set platform with -Pplatform=windows64/windows32/linux/mac") } -} +}*/ task run(dependsOn: classes, type: JavaExec){ main = project.mainClassName @@ -71,108 +72,66 @@ task dist(type: Jar){ } } -//note: call desktop:dist beforehand -task packrCmd(){ - - doLast{ - def config = new PackrConfig() - config.with{ - config.executable = appName - verbose = true - platform = getPlatform() - bundleIdentifier = getPackage() + ".mac" - iconResource = ICON_DIR - outDir = file("packr-out/") - mainClass = project.ext.mainClassName - classpath = ["desktop/build/libs/desktop-release.jar"] - removePlatformLibs = ["desktop/build/libs/desktop-release.jar"] - - vmArgs = ["Djava.net.preferIPv4Stack=true"] - minimizeJre = "desktop/packr_minimize.json" - jdk = JDK_DIR + "jdk-${getPlatform().toString().toLowerCase()}.zip" - - if(getPlatform() == PackrConfig.Platform.MacOS){ - vmArgs += "XstartOnFirstThread" - } - } - - new Packr().pack(config) - } -} - -task copyTemplate(){ - doLast{ - copy{ - into "packr-out/" - from "${JDK_DIR}/templates/${getPlatform().toString().toLowerCase()}" - } - - copy{ - into "packr-out/" - from "build/libs/desktop-release.jar" - } - } -} - -task packrZip(){ - task clearOut(type: Delete){ +PackrConfig.Platform.values().each{ platform -> + task "packr${platform.toString()}"{ doLast{ + if(platform == PackrConfig.Platform.Windows32 || platform == PackrConfig.Platform.Windows64){ + copy{ + into "packr-out/" + from "${JDK_DIR}/templates/${platform.toString().toLowerCase()}" + } + + copy{ + into "packr-out/" + rename("desktop-release.jar", "desktop.jar") + from "../desktop-sdl/build/libs/desktop.jar" + } + }else{ + def config = new PackrConfig() + config.with{ + config.executable = appName + config.platform = platform + verbose = true + bundleIdentifier = getPackage() + ".mac" + iconResource = ICON_DIR + outDir = file("packr-out/") + mainClass = project.ext.mainClassName + classpath = ["desktop-sdl/build/libs/desktop.jar"] + removePlatformLibs = ["desktop-sdl/build/libs/desktop.jar"] + + vmArgs = ["Djava.net.preferIPv4Stack=true"] + minimizeJre = "desktop/packr_minimize.json" + jdk = JDK_DIR + "jdk-${platform.toString().toLowerCase()}.zip" + + if(platform == PackrConfig.Platform.MacOS){ + vmArgs += "XstartOnFirstThread" + } + } + + new Packr().pack(config) + + if(platform == PackrConfig.Platform.MacOS){ + copy{ + into "packr-out/" + appName + ".app/Contents/" + from "packr-out/Contents/" + } + + delete{ + delete "packr-out/Contents/" + } + } + } + + task "zip${platform.toString()}"(type: Zip){ + from "packr-out/" + archiveName "${generateDeployName(platform.toString())}.zip" + destinationDir(file("packr-export")) + } + + finalizedBy 'rzip' + delete "packr-out/" } } +} - task fixMac(type: Copy){ - dependsOn "packrCmd" - - into "packr-out/" + appName + ".app/Contents/" - from "packr-out/Contents/" - - doLast{ - delete{ - delete "packr-out/Contents/" - } - } - } - - task fixWindows32(type: Copy){ - dependsOn "packrCmd" - - into "packr-out/jre/bin/" - from JDK_DIR + "zip.dll" - rename("zip.dll", "ojdkbuild_zlib.dll") - - doLast{ - copy{ - into "packr-out/jre/bin/" - from JDK_DIR + "zip.dll" - } - } - } - - finalizedBy "clearOut" - - if(project.hasProperty("platform")){ - def plat = getPlatform() - if(plat == PackrConfig.Platform.Windows32 || plat == PackrConfig.Platform.Windows64){ - dependsOn "copyTemplate" - }else{ - dependsOn "packrCmd" - - if(getPlatform() == PackrConfig.Platform.MacOS){ - dependsOn "fixMac" - } - - if(getPlatform() == PackrConfig.Platform.Windows32){ - dependsOn "fixWindows32" - } - } - - task rzip(type: Zip){ - from "packr-out/" - archiveName "${generateDeployName(getPlatform().toString())}.zip" - destinationDir(file("packr-export")) - } - - finalizedBy 'rzip' - } -} \ No newline at end of file