buildscript { repositories { mavenLocal() mavenCentral() google() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } jcenter() } dependencies { classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.0' classpath "com.badlogicgames.gdx:gdx-tools:1.9.8" } } allprojects { apply plugin: "eclipse" apply plugin: "idea" version = 'release' ext { versionNumber = '4.0' versionModifier = 'alpha' versionType = 'official' appName = 'Mindustry' gdxVersion = '1.9.8' roboVMVersion = '2.3.0' uCoreVersion = 'dec41336067c013f04f0e17db3b06e24d3c11f6a' getVersionString = { String buildVersion = getBuildVersion() return "$versionNumber-$versionModifier-$buildVersion" } getBuildVersion = { if(!project.hasProperty("buildversion")) return "custom build" return project.getProperties()["buildversion"] } getPackage = { return project.ext.mainClassName.substring(0, project.ext.mainClassName.indexOf("desktop") - 1) } generateLocales = { def output = 'en\n' def bundles = new File(project(':core').projectDir, 'assets/bundles/') bundles.listFiles().each { other -> if(other.name == "bundle.properties") return output += other.name.substring("bundle".length() + 1, other.name.lastIndexOf('.')) + "\n" } new File(project(':core').projectDir, 'assets/locales').text = output } writeVersion = { def pfile = new File(project(':core').projectDir, 'assets/version.properties') def props = new Properties() try{ pfile.createNewFile() }catch (Exception ignored){} if(pfile.exists()) { props.load(new FileInputStream(pfile)) String buildid = getBuildVersion() props["type"] = versionType props["number"] = versionNumber props["modifier"] = versionModifier props["build"] = buildid props.store(pfile.newWriter(), "Autogenerated file. Do not modify.") } } } repositories { mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } maven { url 'https://jitpack.io' } } } project(":desktop") { apply plugin: "java" dependencies { compile project(":core") compile project(":kryonet") if(new File(projectDir.parent, '../debug').exists() && System.properties["release"] == null) compile project(":debug") compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion" compile 'com.github.MinnDevelopment:java-discord-rpc:v2.0.0' } } project(":ios") { apply plugin: "java" apply plugin: "robovm" task copyGen{ copy{ from ("core/build/classes/java/main/io/anuke/mindustry/gen/"){ include "**/*.java" } into "ios/src/io/anuke/mindustry/gen" } doFirst{ delete{ delete "ios/src/io/anuke/mindustry/gen/" } } } build.dependsOn(copyGen) dependencies { compile project(":core") implementation project(":kryonet") compile "com.mobidevelop.robovm:robovm-rt:$roboVMVersion" compile "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion" compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" } } project(":core") { apply plugin: "java" task finish { generateLocales() } dependencies { build.finalizedBy(finish) def comp = System.properties["release"] == null || System.properties["release"] == "false" if(!comp) println("Note: Compiling release build.") if(new File(projectDir.parent, '../uCore').exists() && comp){ compile project(":uCore") }else{ compile "com.github.anuken:ucore:$uCoreVersion" } if(new File(projectDir.parent, '../GDXGifRecorder').exists() && comp) { compile project(":GDXGifRecorder") } compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" compileOnly project(":annotations") annotationProcessor project(":annotations") } } project(":server") { apply plugin: "java" configurations { if(findProject(":android") != null){ compile.exclude module: android } } dependencies { compile project(":core") compile project(":kryonet") compile "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" } } project(":tests"){ apply plugin: "java" dependencies { testImplementation project(":core") testImplementation('org.junit.jupiter:junit-jupiter-api:5.1.0') testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.1.0') testImplementation "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion" testImplementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" } test { useJUnitPlatform() workingDir = new File("../core/assets") } } project(":tools") { apply plugin: "java" dependencies { compile project(":core") } } project(":annotations") { apply plugin: "java" dependencies { compile 'com.squareup:javapoet:1.11.0' } } project(":kryonet") { apply plugin: "java" dependencies { compile project(":core") compile "org.lz4:lz4-java:1.4.1" compile 'com.github.Anuken:kryonet:53b10247b1' compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893' } }