-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
121 lines (105 loc) · 4.87 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
gradlePluginPortal()
}
dependencies {
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.29.0'
}
}
apply plugin: 'java-library'
apply plugin: 'com.vanniktech.maven.publish'
//Obviously, change the next line to match your project name.
def projectName = 'libgdx-library-template'
//Change this to whatever Maven Central group you might publish to,
//which is probably not this one if you aren't Tommy Ettinger.
group 'com.github.tommyettinger'
version "$VERSION_NAME" // You can set the version in gradle.properties .
import com.vanniktech.maven.publish.JavaLibrary
import com.vanniktech.maven.publish.JavadocJar
// This just makes sure that a Javadoc JAR and a sources JAR are produced.
mavenPublishing {
configure(new JavaLibrary(new JavadocJar.Javadoc(), true))
}
// This sets the Javadoc JAR to have hopefully the correct name. This may need adjustment.
mavenPlainJavadocJar.archiveBaseName.set(projectName)
// There's pretty much no reason to use any encoding other than UTF-8 .
[compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'
// Disable JDK 8's doclint
// http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc).tap {
configureEach {
// The -quiet is because of some sort of weird JDK JavaCompiler bug:
// https://discuss.gradle.org/t/passing-arguments-to-compiler-and-javadoc/1661
options.addStringOption('Xdoclint:none,-missing', '-quiet')
}
}
}
}
compileJava {
// The default Java language level this targets is 8, which is as low as current
// (Java 20 and newer) JDKs will permit you to target.
// Targeting Java 7 is the lowest version you could need to go at this point, and
// to target 7 you need to be using Java 19 or lower. The default used for JitPack
// builds in this configuration uses Java 21 to build, so you would need to change
// jitpack.yml to use openjdk17 instead of openjdk21 if you really want to target 7.
// libGDX itself targets a mix of Java 7 (for most backends) and 8 (for LWJGL3).
// You must use 8 if any libraries you use need Java 8 (some that
// come to mind are simple-graphs and jdkgdxds, plus anything that needs LWJGL3).
sourceCompatibility = 8
targetCompatibility = 8
if (JavaVersion.current().isJava9Compatible()) {
options.release.set(8)
}
}
compileTestJava {
// LWJGL3 needs Java 8 starting in libGDX 1.11.0, which forces tests that use LWJGL3
// to use Java 8 or higher. Using options.release enforces compatibility with Java 8,
// including how NIO Buffers behave (which broke compatibility in Java 9).
sourceCompatibility = 8
targetCompatibility = 8
if (JavaVersion.current().isJava9Compatible()) {
options.release.set(8)
}
}
// JavaDocs will be published inside the docs/ folder, which you can easily put on GitHub Pages
// in your repo settings.
// You may instead want to remove this line if frequent doc changes use up too much repo space,
// or if you use a different version control host that doesn't host HTML like this.
javadoc.destinationDir = file('docs/apidocs')
apply plugin: 'idea'
// This makes IDEA avoid including generated JavaDocs (which are HTML files) in any search results.
// If you changed where JavaDocs are published above, you should change the next line, too.
idea.module.excludeDirs += [file("docs/")]
jar {
archiveBaseName.set(projectName)
manifest {
attributes 'Implementation-Title': projectName, 'Implementation-Version': archiveVersion
}
}
repositories {
// You can uncomment mavenLocal() if you need self-built versions, but it can be a problem with GWT or other sources dependencies.
//mavenLocal()
mavenCentral()
maven { url 'https://s01.oss.sonatype.org' }
google()
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' }
// JitPack is a good repo to have if you depend on commit versions.
// Having the below repo might cause problems if uploading to Maven Central.
maven { url 'https://jitpack.io' }
}
dependencies {
// Change gdxVersion in gradle.properties to update or downgrade.
// Libraries that don't use libGDX directly can change the next line
// from `api` to `testImplementation` .
api "com.badlogicgames.gdx:gdx:$gdxVersion"
// "lwjgl3" could be changed to "headless" for command-line-only testing.
testImplementation "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
testImplementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
testImplementation "junit:junit:4.13.2"
}