import com.badlogicgames.packr.Packr import com.badlogicgames.packr.PackrConfig apply plugin: "kotlin" sourceCompatibility = 1.6 sourceSets.main.java.srcDirs = [ "src/" ] project.ext.mainClassName = "com.unciv.app.desktop.DesktopLauncher" project.ext.assetsDir = file("../android/assets") project.ext.discordDir = file("discord_rpc") task run(dependsOn: classes, type: JavaExec) { main = project.mainClassName classpath = sourceSets.main.runtimeClasspath standardInput = System.in workingDir = project.assetsDir ignoreExitValue = true } task debug(dependsOn: classes, type: JavaExec) { main = project.mainClassName classpath = sourceSets.main.runtimeClasspath standardInput = System.in workingDir = project.assetsDir ignoreExitValue = true debug = true } task dist(dependsOn: classes, type: Jar) { // Compiles the jar file from files(sourceSets.main.output.resourcesDir) from files(sourceSets.main.output.classesDirs) // see Laurent1967's comment on https://github.com/libgdx/libgdx/issues/5491 from {configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }} from files(project.assetsDir) // This is for the .dll and .so files to ake the Discord RPC work on all desktops from files(project.discordDir) archiveFileName = "${appName}.jar" manifest { attributes 'Main-Class': project.mainClassName } } for(platform in PackrConfig.Platform.values()) { def platformName = platform.toString() task "packr${platformName}"(dependsOn: dist) { def jarFile = "desktop/build/libs/${appName}.jar".toString() PackrConfig config = new PackrConfig() config.platform = platform // For Travis if(true) { // change to false for local build if (platform == PackrConfig.Platform.Linux32 || platform == PackrConfig.Platform.Linux64) config.jdk = System.env.'JAVA_HOME' // take the jdk straight from the building linux computer if (platform == PackrConfig.Platform.Windows32 || platform == PackrConfig.Platform.Windows64) config.jdk = "jdk-windows.zip" // see how we download and name this in travis yml } else { // for my computer config.jdk = "C:/Users/LENOVO/Downloads/java-1.8.0-openjdk-1.8.0.232-1.b09.ojdkbuild.windows.x86_64.zip" } config.executable = "Unciv" config.classpath = Arrays.asList(jarFile) config.removePlatformLibs = config.classpath config.mainClass = project.ext.mainClassName config.vmArgs = Arrays.asList("Xmx1G") config.minimizeJre = "desktop/packrConfig.json" config.outDir = file("packr") doLast { if(config.outDir.exists()) delete(config.outDir) new Packr().pack(config) } task "zip${platformName}"(type: Zip) { def deployFolder = file("../deploy") archiveFileName = "${appName}-${platformName}.zip" from config.outDir destinationDirectory = deployFolder } finalizedBy "zip${platformName}" } } task packr(){ for(platform in PackrConfig.Platform.values()) finalizedBy "packr${platform.toString()}" } eclipse { project { name = appName + "-desktop" linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/android/assets' } } task afterEclipseImport(description: "Post processing after project generation", group: "IDE") { doLast { def classpath = new XmlParser().parse(file(".classpath")) new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]) def writer = new FileWriter(file(".classpath")) def printer = new XmlNodePrinter(new PrintWriter(writer)) printer.setPreserveWhitespace(true) printer.print(classpath) } }