Initial Commit
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
}
|
||||
dependencies {
|
||||
// using jpackage only works if the JDK version is 14 or higher.
|
||||
// your JAVA_HOME environment variable may also need to be a JDK with version 14 or higher.
|
||||
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_14)) {
|
||||
classpath "org.beryx:badass-runtime-plugin:1.13.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_14)) {
|
||||
apply plugin: 'org.beryx.runtime'
|
||||
}
|
||||
else {
|
||||
apply plugin: 'application'
|
||||
}
|
||||
|
||||
//sourceSets.main.resources.srcDirs += [ rootProject.file('assets').path ]
|
||||
sourceSets.main.resources.srcDirs += [ rootProject.file('assets') ]
|
||||
|
||||
mainClassName = 'io.doppelspalt.lwjgl3.Lwjgl3Launcher'
|
||||
eclipse.project.name = appName + '-lwjgl3'
|
||||
java.sourceCompatibility = 11
|
||||
java.targetCompatibility = 11
|
||||
|
||||
dependencies {
|
||||
implementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
|
||||
implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
|
||||
|
||||
implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
|
||||
implementation project(':core')
|
||||
|
||||
|
||||
}
|
||||
|
||||
def os = System.properties['os.name'].toLowerCase()
|
||||
|
||||
run {
|
||||
workingDir = rootProject.file('assets').path
|
||||
setIgnoreExitValue(true)
|
||||
|
||||
// This next line could be needed to run LWJGL3 Java apps on macOS, but StartupHelper should make it unnecessary.
|
||||
//if (os.contains('mac')) jvmArgs += "-XstartOnFirstThread"
|
||||
// If you encounter issues with the 'lwjgl3:run' task on macOS specifically, try uncommenting the above line, and
|
||||
// regardless, please report it via the gdx-liftoff issue tracker or just mention it on the libGDX Discord.
|
||||
}
|
||||
|
||||
jar {
|
||||
// sets the name of the .jar file this produces to the name of the game or app.
|
||||
archiveBaseName.set(appName)
|
||||
// using 'lib' instead of the default 'libs' appears to be needed by jpackageimage.
|
||||
destinationDirectory = file("${project.layout.buildDirectory.asFile.get().absolutePath}/lib")
|
||||
// the duplicatesStrategy matters starting in Gradle 7.0; this setting works.
|
||||
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
|
||||
dependsOn configurations.runtimeClasspath
|
||||
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
|
||||
// these "exclude" lines remove some unnecessary duplicate files in the output JAR.
|
||||
exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
|
||||
dependencies {
|
||||
exclude('META-INF/INDEX.LIST', 'META-INF/maven/**')
|
||||
}
|
||||
// setting the manifest makes the JAR runnable.
|
||||
manifest {
|
||||
attributes 'Main-Class': project.mainClassName
|
||||
}
|
||||
// this last step may help on some OSes that need extra instruction to make runnable JARs.
|
||||
doLast {
|
||||
file(archiveFile).setExecutable(true, false)
|
||||
}
|
||||
}
|
||||
|
||||
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_14)) {
|
||||
tasks.jpackageImage.doNotTrackState("This task both reads from and writes to the build folder.")
|
||||
runtime {
|
||||
options.set(['--strip-debug',
|
||||
'--compress', '2',
|
||||
'--no-header-files',
|
||||
'--no-man-pages',
|
||||
'--strip-native-commands',
|
||||
'--vm', 'server'])
|
||||
// you could very easily need more modules than this one.
|
||||
// use the lwjgl3:suggestModules task to see which modules may be needed.
|
||||
modules.set([
|
||||
'jdk.unsupported'
|
||||
])
|
||||
distDir.set(file(project.layout.buildDirectory))
|
||||
jpackage {
|
||||
imageName = appName
|
||||
// you can set this to false if you want to build an installer, or keep it as true to build just an app.
|
||||
skipInstaller = true
|
||||
// this may need to be set to a different path if your JAVA_HOME points to a low JDK version.
|
||||
jpackageHome = javaHome.getOrElse("")
|
||||
mainJar = jar.archiveFileName.get()
|
||||
if (os.contains('win')) {
|
||||
imageOptions = ["--icon", "icons/logo.ico"]
|
||||
} else if (os.contains('nix') || os.contains('nux') || os.contains('bsd')) {
|
||||
imageOptions = ["--icon", "icons/logo.png"]
|
||||
} else if (os.contains('mac')) {
|
||||
// If you are making a jpackage image on macOS, the below line should work thanks to StartupHelper.
|
||||
imageOptions = ["--icon", "icons/logo.icns"]
|
||||
// If the above line doesn't produce a runnable executable, you can try using the below line instead of the above one.
|
||||
// imageOptions = ["--icon", "icons/logo.icns", "--java-options", "\"-XstartOnFirstThread\""]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Equivalent to the jar task; here for compatibility with gdx-setup.
|
||||
tasks.register('dist') {
|
||||
dependsOn['jar']
|
||||
}
|
||||
Reference in New Issue
Block a user