ext { GROUPID = "com.badlogicgames.gdx" VERSION = "1.9.3-SNAPSHOT" gdxVersion = VERSION robovmVersion = "1.9.0" moeVersion = "1.0.0" androidVersion = "4.4" gwtVersion = "2.6.0" jglfwVersion = "1.1" lwjglVersion = "2.9.2" lwjgl3Version = "3.0.0b" jlayerVersion = "1.0.1-gdx" jorbisVersion = "0.0.17" junitVersion = "4.11" appleExtensionVersion = "1.4" } buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath "com.android.tools.build:gradle:1.2.3" classpath "org.robovm:robovm-gradle-plugin:1.5.0" classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6' } } // apply the following to all projects, except the // Android test project, that one has its own // build.gradle file cause Android is special... configure(allprojects - project(':tests:gdx-tests-android')) { apply plugin: "eclipse" apply plugin: "idea" apply plugin: "java" compileJava.options.encoding = 'UTF-8'; repositories { mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } group = GROUPID version = VERSION // set source Java version sourceCompatibility = 1.6 targetCompatibility = 1.6 sourceSets.main.java.srcDirs = ["src"] sourceSets.main.resources.srcDirs = ["src"] // create a custom configuration for local dependencies such as Android runtime configurations { optional compile.extendsFrom optional } } project(":gdx") { sourceSets.test.java.srcDirs = ["test"] dependencies { optional project(":extensions:gdx-jnigen") testCompile "junit:junit:$junitVersion" } } project(":backends:gdx-backend-android") { dependencies { compile project(":gdx") optional fileTree(dir: 'libs', include: ['*.jar']) } } project(":backends:gdx-backend-headless") { dependencies { compile project(":gdx") } } project(":backends:gdx-backend-jglfw") { dependencies { compile project(":gdx") compile "com.badlogicgames.jglfw:jglfw:$jglfwVersion" compile "com.badlogicgames.jglfw:jglfw-platform:$jglfwVersion:natives-desktop" } } project(":backends:gdx-backend-lwjgl") { dependencies { compile project(":gdx") compile "org.lwjgl.lwjgl:lwjgl:$lwjglVersion" compile "org.lwjgl.lwjgl:lwjgl_util:$lwjglVersion" compile "com.badlogicgames.jlayer:jlayer:$jlayerVersion" compile "org.jcraft:jorbis:$jorbisVersion" } } project(":backends:gdx-backend-lwjgl3") { dependencies { compile project(":gdx") compile "org.lwjgl:lwjgl:$lwjgl3Version" compile "org.lwjgl:lwjgl-platform:$lwjgl3Version:natives-linux" compile "org.lwjgl:lwjgl-platform:$lwjgl3Version:natives-windows" compile "org.lwjgl:lwjgl-platform:$lwjgl3Version:natives-osx" compile "com.apple:AppleJavaExtensions:$appleExtensionVersion" compile "com.badlogicgames.jlayer:jlayer:$jlayerVersion" compile "org.jcraft:jorbis:$jorbisVersion" } } project(":backends:gdx-backend-robovm") { dependencies { compile project(":gdx") optional "org.robovm:robovm-rt:$robovmVersion" optional "org.robovm:robovm-objc:$robovmVersion" optional "org.robovm:robovm-cocoatouch:$robovmVersion" } } project(":backends:gdx-backend-moe") { dependencies { compile project(":gdx") optional fileTree(dir: 'libs', include: ['*.jar']) } } project(":backends:gdx-backends-gwt") { sourceSets.main.java.exclude "**/System.java" dependencies { compile project(":gdx") optional "com.google.gwt:gwt-user:$gwtVersion" optional "com.google.gwt:gwt-dev:$gwtVersion" } eclipse { sourceSets.main.java.srcDirs "src", "src/com/badlogic/gdx/backends/gwt/emu" classpath.file.whenMerged { classpath -> classpath.entries.find { it.path == 'src' }*.excludes = [ "com/badlogic/gdx/backends/gwt/emu/"] } } } project(":extensions:gdx-box2d:gdx-box2d") { dependencies { compile project(":gdx") optional project(":extensions:gdx-jnigen") } } project(":extensions:gdx-box2d:gdx-box2d-gwt") { dependencies { compile project(":gdx") } eclipse { sourceSets.main.java.srcDirs "src", "src/com/badlogic/gdx/physics/box2d/gwt/emu" classpath.file.whenMerged { classpath -> classpath.entries.find { it.path == 'src' }*.excludes = [ "com/badlogic/gdx/physics/box2d/gwt/emu/" ] } } } project(":extensions:gdx-bullet") { sourceSets.main.java.srcDirs = [ "jni/swig-src/collision", "jni/swig-src/dynamics", "jni/swig-src/extras", "jni/swig-src/linearmath", "jni/swig-src/softbody", "src" ] dependencies { compile project(":gdx") optional project(":extensions:gdx-jnigen") } } project(":extensions:gdx-controllers:gdx-controllers") { dependencies { compile project(":gdx"); } } project(":extensions:gdx-controllers:gdx-controllers-android") { dependencies { compile project(":gdx"); compile project(":extensions:gdx-controllers:gdx-controllers"); compile project(":backends:gdx-backend-android"); } } project(":extensions:gdx-controllers:gdx-controllers-desktop") { dependencies { compile project(":gdx"); compile project(":extensions:gdx-controllers:gdx-controllers"); compile project(":backends:gdx-backend-lwjgl"); optional project(":extensions:gdx-jnigen") } } project(":extensions:gdx-controllers:gdx-controllers-lwjgl3") { dependencies { compile project(":gdx"); compile project(":extensions:gdx-controllers:gdx-controllers"); compile project(":backends:gdx-backend-lwjgl3"); optional project(":extensions:gdx-jnigen") } } project(":extensions:gdx-controllers:gdx-controllers-gwt") { dependencies { compile project(":gdx"); compile project(":extensions:gdx-controllers:gdx-controllers"); compile project(":backends:gdx-backends-gwt"); } eclipse { sourceSets.main.java.srcDirs "src", "src/com/badlogic/gdx/controllers/gwt/emu" classpath.file.whenMerged { classpath -> classpath.entries.find { it.path == 'src' }*.excludes = [ "com/badlogic/gdx/controllers/gwt/emu/" ] } } } project(":extensions:gdx-freetype") { dependencies { compile project(":gdx"); } } project(":extensions:gdx-jnigen") { dependencies { compile "com.github.javaparser:javaparser-core:2.3.0" } } project(":extensions:gdx-setup") { } project(":extensions:gdx-tools") { dependencies { compile files("../../gdx/libs/gdx-natives.jar") compile files("../../extensions/gdx-freetype/libs/gdx-freetype-natives.jar") compile project(":backends:gdx-backend-lwjgl") compile project(":backends:gdx-backend-headless") compile project(":extensions:gdx-freetype") optional fileTree(dir: 'libs', include: ['*.jar']) } } project(":tests:gdx-tests") { dependencies { compile project(":gdx") compile project(":extensions:gdx-box2d:gdx-box2d") compile project(":extensions:gdx-bullet") compile project(":extensions:gdx-controllers:gdx-controllers") compile project(":extensions:gdx-freetype") } } project(":tests:gdx-tests-android") { apply plugin: "eclipse" apply plugin: "idea" apply plugin: "android" dependencies { compile project(":tests:gdx-tests") compile project(":backends:gdx-backend-android") compile "com.android.support:support-v4:+" } } project(":tests:gdx-tests-gwt") { apply plugin: "gwt" apply plugin: "war" dependencies { compile project(":tests:gdx-tests") compile project(":backends:gdx-backends-gwt") compile project(":extensions:gdx-box2d:gdx-box2d-gwt") compile project(":extensions:gdx-controllers:gdx-controllers-gwt") } } project(":tests:gdx-tests-iosrobovm") { dependencies { compile project(":tests:gdx-tests") compile project(":backends:gdx-backend-robovm") } eclipse.project { natures 'org.robovm.eclipse.RoboVMNature' } } project("tests:gdx-tests-ios-intel") { dependencies { compile project(":tests:gdx-tests") //compile project(":backends:gdx-backend-moe") compile "com.badlogicgames.gdx:gdx-backend-moe:$gdxVersion" //natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" } eclipse.project { natures 'org.robovm.eclipse.RoboVMNature' } } project(":tests:gdx-tests-jglfw") { dependencies { compile project(":tests:gdx-tests") compile project(":backends:gdx-backend-jglfw") compile files("../../gdx/libs/gdx-natives.jar") compile files("../../backends/gdx-backend-jglfw/libs/gdx-backend-jglfw-natives.jar") compile files("../../extensions/gdx-box2d/gdx-box2d/libs/gdx-box2d-natives.jar") compile files("../../extensions/gdx-bullet/libs/gdx-bullet-natives.jar") compile files("../../extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar") compile project(":extensions:gdx-controllers:gdx-controllers-desktop") compile files("../../extensions/gdx-freetype/libs/gdx-freetype-natives.jar") } eclipse.project.linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/gdx-tests-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) } } } project(":tests:gdx-tests-lwjgl") { dependencies { compile project(":tests:gdx-tests") compile project(":backends:gdx-backend-lwjgl") compile files("../../gdx/libs/gdx-natives.jar") compile files("../../extensions/gdx-box2d/gdx-box2d/libs/gdx-box2d-natives.jar") compile files("../../extensions/gdx-bullet/libs/gdx-bullet-natives.jar") compile files("../../extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar") compile project(":extensions:gdx-controllers:gdx-controllers-desktop") compile files("../../extensions/gdx-freetype/libs/gdx-freetype-natives.jar") } eclipse.project.linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/gdx-tests-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) } } } project(":tests:gdx-tests-lwjgl3") { dependencies { compile project(":tests:gdx-tests") compile project(":backends:gdx-backend-lwjgl3") compile files("../../gdx/libs/gdx-natives.jar") compile files("../../extensions/gdx-box2d/gdx-box2d/libs/gdx-box2d-natives.jar") compile files("../../extensions/gdx-bullet/libs/gdx-bullet-natives.jar") compile files("../../extensions/gdx-controllers/gdx-controllers-lwjgl3/libs/gdx-controllers-desktop-natives.jar") compile project(":extensions:gdx-controllers:gdx-controllers-lwjgl3") compile files("../../extensions/gdx-freetype/libs/gdx-freetype-natives.jar") } eclipse.project.linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/gdx-tests-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) } } } if (JavaVersion.current().isJava8Compatible()) { allprojects { tasks.withType(Javadoc) { options.addStringOption("Xdoclint:none", "-quiet") } } } task fetchNatives << { ant.importBuild "fetch.xml" fetch.execute() copy.execute() }