/* buildscript { ext { javaVersion = "23" // language version jdkVersion = "23" // toolchain jdk version kotlinVersion = "2.1.21" // https://kotlinlang.org/docs/releases.html#release-details gradlewVersion = "8.12.1" // https://gradle.org/releases/ giteaUrl = System.getenv("GITEA_URL") ?: "https://gitea.dhswt.de" } repositories { mavenCentral() // gradlePluginPortal() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } */ // configure defaults for gradle version wrapper { gradleVersion = "$gradlewVersion" distributionType = Wrapper.DistributionType.ALL } // append jdk version to gradle properties for use by CI environments task writeCIGradleAndJdkVersionInfo(type: WriteProperties, group: "build setup") { File ciPropsFile = new File(rootProject.projectDir, "gradle/ci.properties") destinationFile = ciPropsFile def props = new Properties() if (ciPropsFile.exists()) { ciPropsFile.withInputStream { props.load(it) } } props.setProperty("java_version", javaVersion) props.setProperty("jdk_version", jdkVersion) props.setProperty("kotlin_version", kotlinVersion) props.setProperty("gradlew_version", gradlewVersion) props.setProperty("gitea_url", giteaUrl) properties(props) } // always run after wrapper task wrapper.finalizedBy writeCIGradleAndJdkVersionInfo // use more compact source set directories without nesting for simple or mono-language projects ext.useCompactKotlinSourceSets = { org.gradle.api.Project target -> target.sourceSets { main.java.srcDirs = [] main.resources.srcDirs = ['resources'] main.kotlin.srcDirs = ['src'] test.java.srcDirs = [] test.resources.srcDirs = ['resources', 'test-resources'] test.kotlin.srcDirs = ['test'] } } // configure defaults for java and jdk versions based on provided variables and enable intellij idea integration ext.configureDefaultsIdeaKotlinJava = { org.gradle.api.Project target -> target.idea { module { downloadJavadoc = true downloadSources = true } } target.kotlin { compilerOptions { // jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.valueOf("JVM_${javaVersion}")) // workaround for mismatch classloader issues sometimes happening var newValue = jvmTarget.get().class.getEnumConstants().find { it.target == "${javaVersion}" } jvmTarget.set(newValue) } jvmToolchain { /* var newVersion = JavaLanguageVersion.of(jdkVersion) if (newVersion != languageVersion.getOrNull()) { languageVersion.set(JavaLanguageVersion.of(jdkVersion)) } */ } } target.java { sourceCompatibility = JavaVersion.toVersion(javaVersion) targetCompatibility = JavaVersion.toVersion(javaVersion) withJavadocJar() withSourcesJar() } }