prog8/compiler/build.gradle
2019-07-08 14:38:51 +02:00

107 lines
2.4 KiB
Groovy

plugins {
id "org.jetbrains.kotlin.jvm" version "1.3.40"
id 'application'
id 'org.jetbrains.dokka' version "0.9.18"
}
repositories {
mavenCentral()
jcenter()
}
def kotlinVersion = '1.3.40'
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"
runtime 'org.antlr:antlr4-runtime:4.7.2'
runtime project(':parser')
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'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'
}
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
verbose = true
// freeCompilerArgs += "-XXLanguage:+NewInference"
}
}
sourceSets {
main {
java {
srcDirs = ["${project.projectDir}/src"]
}
resources {
srcDirs = ["${project.projectDir}/res"]
}
}
test {
java {
srcDirs = ["${project.projectDir}/test"]
}
}
}
startScripts.enabled = false
//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'
// destinationDirectory = rootProject.projectDir
// from {
// project.configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
// }
// with jar
//}
// build.finalizedBy(fatJar)
// Java target version
sourceCompatibility = 1.8
test {
// Enable JUnit 5 (Gradle 4.6+).
useJUnitPlatform()
// Always run tests, even when nothing changed.
dependsOn 'cleanTest'
// Show test results.
testLogging {
events "passed", "skipped", "failed"
}
}
dokka {
outputFormat = 'html'
outputDirectory = "$buildDir/kdoc"
}