Files
imgui-java/build.gradle
T
SpaiR 7190b51a72 chore(build): update to Gradle 8.12 and set CI to use JDK 17 (#308)
Upgraded the build system to Gradle 8.12 and updated the CI pipeline to use JDK 17 for improved compatibility and performance.
2024-12-27 15:00:01 +02:00

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'),
]
}