Last active
March 11, 2022 17:31
-
-
Save crykn/a0df3c6c5d6e1f5414a48bae2192d409 to your computer and use it in GitHub Desktop.
A proof of concept for automatically fetching the versions of libGDX's Gradle dependencies from an API endpoint.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
buildscript { | |
apply from: 'gradle/libgdx-versions.gradle' | |
repositories { | |
mavenLocal() | |
mavenCentral() | |
maven { url "https://plugins.gradle.org/m2/" } | |
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } | |
jcenter() | |
google() | |
} | |
dependencies { | |
// NOTE: Do not place your application dependencies here; they belong | |
// in the individual project dependencies down below | |
classpath "org.wisepersist:gwt-gradle-plugin:$gwtPluginVersion" | |
classpath "org.gretty:gretty:3.0.2" | |
classpath "com.android.tools.build:gradle:$androidGradleToolsVersion" | |
classpath "com.mobidevelop.robovm:robovm-gradle-plugin:$roboVMPluginVersion" | |
} | |
} | |
allprojects { | |
apply plugin: "eclipse" | |
version = '1.0' | |
ext { | |
appName = "my-gdx-game" | |
box2DLightsVersion = '1.5' | |
ashleyVersion = '1.7.3' | |
aiVersion = '1.8.2' | |
} | |
repositories { | |
mavenLocal() | |
mavenCentral() | |
jcenter() | |
google() | |
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } | |
maven { url "https://oss.sonatype.org/content/repositories/releases/" } | |
} | |
} | |
project(":core") { | |
apply plugin: "java-library" | |
dependencies { | |
api "com.badlogicgames.gdx:gdx:$gdxVersion" | |
} | |
} | |
project(":desktop") { | |
apply plugin: "java-library" | |
dependencies { | |
implementation project(":core") | |
api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" | |
api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" | |
} | |
} | |
project(":android") { | |
apply plugin: "com.android.application" | |
configurations { natives } | |
dependencies { | |
implementation project(":core") | |
api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" | |
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" | |
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" | |
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a" | |
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" | |
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" | |
} | |
} | |
project(":ios") { | |
apply plugin: "java-library" | |
apply plugin: "robovm" | |
dependencies { | |
implementation project(":core") | |
api "com.mobidevelop.robovm:robovm-rt:$roboVMVersion" | |
api "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion" | |
api "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" | |
api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" | |
} | |
} | |
project(":html") { | |
apply plugin: "java-library" | |
apply plugin: "gwt" | |
apply plugin: "war" | |
apply plugin: "org.gretty" | |
dependencies { | |
implementation project(":core") | |
api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" | |
api "com.badlogicgames.gdx:gdx:$gdxVersion:sources" | |
api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import groovy.json.JsonSlurper | |
// Loads the local versions file | |
def versionFile = file('gradle/libgdx-versions.json') | |
def json | |
if (versionFile.exists()) { | |
json = new JsonSlurper().parseText(versionFile.text) | |
} else { | |
println "No local libGDX version definitions found; fetching them from libgdx.com" | |
ant.get(src: 'https://libgdx.com/service/versions.json', dest: 'gradle/libgdx-versions.json') | |
if (versionFile.exists()) { | |
json = new JsonSlurper().parseText(versionFile.text) | |
} else throw new GradleException("Unable to retrieve latest versions, please check your internet connection!") | |
} | |
ext { | |
gdxVersion = json.libgdxRelease | |
roboVMVersion = json.robovmVersion | |
roboVMPluginVersion = json.robovmPluginVersion | |
androidToolsVersion = json.androidBuildtoolsVersion | |
androidSDKVersion = json.androidSDKVersion | |
androidGradleToolsVersion = json.androidGradleToolVersion | |
gwtVersion = json.gwtVersion | |
gwtPluginVersion = json.gwtPluginVersion | |
} | |
task updateLibgdxVersions { | |
description 'Updates the local libGDX version definitions. Refresh your dependencies afterwards!' | |
doLast { | |
ant.get(src: 'https://libgdx.com/service/versions.json', dest: 'gradle/libgdx-versions.json') | |
def versionFile2 = file('gradle/libgdx-versions.json') | |
if (versionFile2.exists()) { | |
print "Local version definitions successfully updated. Refresh your dependencies!" | |
} else throw new GradleException("Unable to retrieve latest versions, please check your internet connection!") | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment