2019-01-29 11:08:21 +00:00
|
|
|
plugins {
|
2019-06-19 22:34:55 +00:00
|
|
|
id "org.jetbrains.kotlin.jvm" version "1.3.40"
|
2019-01-29 11:11:47 +00:00
|
|
|
id 'application'
|
2019-01-29 11:08:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
|
|
jcenter()
|
|
|
|
}
|
|
|
|
|
2019-06-19 22:34:55 +00:00
|
|
|
def kotlinVersion = '1.3.40'
|
2019-01-29 11:08:21 +00:00
|
|
|
|
|
|
|
dependencies {
|
|
|
|
implementation project(':parser')
|
|
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
|
2019-02-23 12:17:42 +00:00
|
|
|
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
|
2019-01-29 11:08:21 +00:00
|
|
|
runtime "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"
|
2019-02-28 14:02:10 +00:00
|
|
|
runtime 'org.antlr:antlr4-runtime:4.7.2'
|
2019-03-02 21:41:21 +00:00
|
|
|
runtime project(':parser')
|
2019-01-29 11:08:21 +00:00
|
|
|
|
2019-04-19 22:50:15 +00:00
|
|
|
testImplementation "org.jetbrains.kotlin:kotlin-test-junit5:$kotlinVersion"
|
2019-01-29 11:08:21 +00:00
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.2'
|
|
|
|
testImplementation 'org.hamcrest:hamcrest-junit:2.0.0.0'
|
2019-04-19 22:50:15 +00:00
|
|
|
|
|
|
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'
|
2019-01-29 11:08:21 +00:00
|
|
|
}
|
|
|
|
|
2019-04-19 22:50:15 +00:00
|
|
|
compileKotlin {
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = "1.8"
|
|
|
|
}
|
|
|
|
}
|
2019-01-29 11:10:59 +00:00
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
java {
|
|
|
|
srcDirs = ["${project.projectDir}/src"]
|
|
|
|
}
|
|
|
|
resources {
|
|
|
|
srcDirs = ["${project.projectDir}/res"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
test {
|
|
|
|
java {
|
|
|
|
srcDirs = ["${project.projectDir}/test"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-01-29 11:11:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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") {
|
2019-04-19 22:50:15 +00:00
|
|
|
from(p8vmScript)
|
|
|
|
fileMode = 0755
|
2019-01-29 11:10:59 +00:00
|
|
|
}
|
2019-01-30 21:39:43 +00:00
|
|
|
|
|
|
|
task fatJar(type: Jar) {
|
|
|
|
manifest {
|
|
|
|
attributes 'Main-Class': 'prog8.CompilerMainKt'
|
|
|
|
}
|
|
|
|
archiveBaseName = 'prog8compiler'
|
2019-02-27 22:22:57 +00:00
|
|
|
destinationDirectory = rootProject.projectDir
|
|
|
|
from {
|
|
|
|
project.configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
|
|
|
|
}
|
2019-01-30 21:39:43 +00:00
|
|
|
with jar
|
|
|
|
}
|
2019-02-23 12:17:42 +00:00
|
|
|
// build.finalizedBy(fatJar)
|
2019-04-19 22:50:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
// 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"
|
|
|
|
}
|
|
|
|
}
|