plugins { id 'org.jetbrains.kotlin.jvm' id 'org.jlleitschuh.gradle.ktlint' } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } def generatedDefaults = layout.buildDirectory.dir('generated/defaults') tasks.register('generateDefaults', Exec) { inputs.files(rootProject.file('app/src/main/config/ui_config.json'), file('generate_defaults.py')) outputs.dir(generatedDefaults) commandLine 'python3', file('generate_defaults.py'), rootProject.file('app/src/main/config/ui_config.json'), generatedDefaults.get().asFile } kotlin.sourceSets.main.kotlin.srcDir(generatedDefaults) tasks.named('compileKotlin') { dependsOn 'generateDefaults' } tasks.matching { it.name.startsWith('runKtlint') && it.name.endsWith('MainSourceSet') }.configureEach { dependsOn 'generateDefaults' } tasks.register('verifyPackagedConfiguration', JavaExec) { dependsOn 'classes' classpath = sourceSets.main.runtimeClasspath mainClass = 'link.roadio.riff.config.ConfigurationCheckKt' } tasks.named('check') { dependsOn 'verifyPackagedConfiguration' } dependencies { testImplementation 'junit:junit:4.13.2' } ktlint { filter { exclude { it.file.path.contains('/build/generated/') } } }