prog8/compiler/build.gradle

119 lines
2.6 KiB
Groovy
Raw Normal View History

buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
plugins {
// id "org.jetbrains.kotlin.jvm" version $kotlinVersion
2019-01-29 11:11:47 +00:00
id 'application'
2019-06-23 13:43:52 +00:00
id 'org.jetbrains.dokka' version "0.9.18"
id 'com.github.johnrengelman.shadow' version '5.1.0'
id 'java'
}
apply plugin: "kotlin"
apply plugin: "java"
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
sourceCompatibility = 1.8
def prog8version = rootProject.file('compiler/res/version.txt').text.trim()
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')
2019-04-19 22:50:15 +00:00
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'
2019-04-19 22:50:15 +00:00
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'
}
2019-04-19 22:50:15 +00:00
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
verbose = true
2019-07-08 12:09:25 +00:00
// freeCompilerArgs += "-XXLanguage:+NewInference"
2019-04-19 22:50:15 +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
startScripts.enabled = true
application {
mainClassName = 'prog8.CompilerMainKt'
applicationName = 'p8compile'
}
artifacts {
archives shadowJar
}
task p8vmScript(type: CreateStartScripts) {
mainClassName = "prog8.vm.stackvm.MainKt"
applicationName = "p8vm"
outputDir = new File(project.buildDir, 'scripts')
classpath = jar.outputs.files + project.configurations.runtime
}
applicationDistribution.into("bin") {
from(p8vmScript)
fileMode = 0755
}
// To create a fat-jar use the 'create_compiler_jar' script for now
// @todo investigate https://imperceptiblethoughts.com/shadow/introduction/
shadowJar {
baseName = 'prog8compiler'
version = prog8version
// minimize()
}
2019-04-19 22:50:15 +00:00
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"
}
}
2019-06-23 13:43:52 +00:00
dokka {
outputFormat = 'html'
outputDirectory = "$buildDir/kdoc"
}