Upgraded the build system to Gradle 8.12 and updated the CI pipeline to use JDK 17 for improved compatibility and performance.
70 lines
2.3 KiB
Groovy
70 lines
2.3 KiB
Groovy
import tool.generator.ast.task.GenerateAst
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
ext {
|
|
lwjglVersion = '3.3.4'
|
|
}
|
|
|
|
allprojects {
|
|
group = 'imgui-java'
|
|
version = 'git describe --tags --always'.execute().text.trim().substring(1)
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
tasks.withType(Jar).tap {
|
|
configureEach {
|
|
from(project.rootDir) {
|
|
include 'LICENSE'
|
|
into 'META-INF'
|
|
}
|
|
|
|
def jdkMetadata = tasks.withType(JavaCompile).find().javaCompiler.get().metadata
|
|
def buildJdk = "${jdkMetadata.javaRuntimeVersion} (${jdkMetadata.vendor})".toString()
|
|
|
|
manifest {
|
|
attributes (
|
|
'Implementation-Title': project.name,
|
|
'Implementation-Version': project.version,
|
|
'Build-Timestamp': new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(System.currentTimeMillis()),
|
|
'Build-Revision': 'git rev-parse HEAD'.execute().text.trim(),
|
|
'Build-Jdk': buildJdk,
|
|
'Source-Compatibility': tasks.withType(JavaCompile).find().sourceCompatibility,
|
|
'Target-Compatibility': tasks.withType(JavaCompile).find().targetCompatibility,
|
|
'Created-By': "Gradle ${gradle.gradleVersion} "
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.register('buildAll') { t ->
|
|
t.group = 'build'
|
|
t.description = 'Build all project sources.'
|
|
|
|
t.dependsOn ':imgui-app:shadowJar'
|
|
|
|
['app', 'binding', 'lwjgl3'].each { module ->
|
|
['build', 'sourcesJar', 'javadocJar'].each { task ->
|
|
t.dependsOn ":imgui-$module:$task"
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.register('generateAst', GenerateAst) {
|
|
headerFiles = [
|
|
file('include/imgui/imgui.h'),
|
|
file('include/imgui/imgui_internal.h'),
|
|
file('include/imgui/misc/freetype/imgui_freetype.h'),
|
|
file('include/ImGuiFileDialog/ImGuiFileDialog.h'),
|
|
file('include/imgui-knobs/imgui-knobs.h'),
|
|
file('include/imguizmo/ImGuizmo.h'),
|
|
file('include/imnodes/imnodes.h'),
|
|
file('include/implot/implot.h'),
|
|
file('include/imgui-node-editor/imgui_node_editor.h'),
|
|
file('include/ImGuiColorTextEdit/TextEditor.h'),
|
|
]
|
|
}
|