plugins { id "org.jetbrains.kotlin.jvm" version "1.3.21" id 'application' } repositories { mavenCentral() jcenter() } def kotlinVersion = '1.3.21' dependencies { implementation project(':parser') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" runtime "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" testImplementation "org.jetbrains.kotlin:kotlin-test-junit5:$kotlinVersion" testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.2' testImplementation 'org.hamcrest:hamcrest-junit:2.0.0.0' } sourceSets { main { java { srcDirs = ["${project.projectDir}/src"] } resources { srcDirs = ["${project.projectDir}/res"] } } test { java { srcDirs = ["${project.projectDir}/test"] } } } application { mainClassName = 'prog8.CompilerMainKt' applicationName = 'p8compile' } task p8vmScript(type: CreateStartScripts) { mainClassName = "prog8.StackVmMainKt" applicationName = "p8vm" outputDir = new File(project.buildDir, 'scripts') classpath = jar.outputs.files + project.configurations.runtime } applicationDistribution.into("bin") { from(p8vmScript) fileMode = 0755 } task fatJar(type: Jar) { manifest { attributes 'Main-Class': 'prog8.CompilerMainKt' } archiveBaseName = 'prog8compiler' destinationDir = rootProject.projectDir from { project.configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } } with jar } // build.finalizedBy(fatJar)