import tool.generator.ast.task.GenerateAst import java.text.SimpleDateFormat ext { lwjglVersion = '3.3.6' } 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'), ] }