plugins { id 'java' id 'application' id 'org.jetbrains.kotlin.jvm' id 'com.github.johnrengelman.shadow' version '8.1.1' id 'com.peterabeles.gversion' version '1.10.2' } java { targetCompatibility = JavaLanguageVersion.of(javaVersion) sourceCompatibility = JavaLanguageVersion.of(javaVersion) } compileKotlin { kotlinOptions { jvmTarget = javaVersion } } compileTestKotlin { kotlinOptions { jvmTarget = javaVersion } } dependencies { implementation project(':codeCore') implementation project(':codeOptimizers') implementation project(':compilerAst') implementation project(':codeGenCpu6502') implementation project(':codeGenIntermediate') implementation project(':codeGenExperimental') implementation project(':virtualmachine') implementation "org.antlr:antlr4-runtime:4.13.1" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" // implementation "org.jetbrains.kotlin:kotlin-reflect" implementation 'org.jetbrains.kotlinx:kotlinx-cli:0.3.6' implementation "com.michael-bull.kotlin-result:kotlin-result-jvm:2.0.0" testImplementation project(':codeCore') testImplementation project(':intermediate') testImplementation 'io.kotest:kotest-runner-junit5-jvm:5.9.0' testImplementation 'org.junit.jupiter:junit-jupiter:5.9.2' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } configurations.all { exclude group: 'com.ibm.icu', module: 'icu4j' exclude group: "org.antlr", module: "antlr4" } configurations { // strange antlr plugin issue, see https://github.com/gradle/gradle/issues/820 // this avoids linking in the complete antlr binary jar compile { extendsFrom = extendsFrom.findAll { it != configurations.antlr } } } sourceSets { main { java { srcDir "${project.projectDir}/src" } resources { srcDir "${project.projectDir}/res" } } test { java { srcDir "${project.projectDir}/test" } } } startScripts.enabled = true application { mainClass = 'prog8.CompilerMainKt' applicationName = 'p8compile' } shadowJar { archiveBaseName = 'prog8compiler' archiveVersion = version // minimize() } test { // Enable JUnit 5 (Gradle 4.6+). useJUnitPlatform() // Always run tests, even when nothing changed. dependsOn 'cleanTest' // Show test results. testLogging { events "skipped", "failed" } } gversion { srcDir = "src/" // path is relative to the sub-project by default classPackage = "prog8.buildversion" className = "Version" language = "kotlin" } build.finalizedBy installDist, installShadowDist compileKotlin.dependsOn createVersionFile // , failDirtyNotSnapshot compileJava.dependsOn createVersionFile