mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 00:34:20 +03:00
70 lines
2.0 KiB
Groovy
70 lines
2.0 KiB
Groovy
plugins {
|
|
id 'java'
|
|
}
|
|
|
|
group = 'com.annimon'
|
|
version = '2.0-SNAPSHOT'
|
|
|
|
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
|
if (!hasProperty('mainClass')) {
|
|
ext.mainClass = 'com.annimon.ownlang.Main'
|
|
}
|
|
|
|
ext.generatedJavaDir = "${rootProject.projectDir}/src/main/generatedJava"
|
|
sourceSets.main.java.srcDirs += project.generatedJavaDir
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
tasks.register('generateJavaSources') {
|
|
doLast {
|
|
def source = """
|
|
package com.annimon.ownlang;
|
|
class Gen {
|
|
private Gen() {}
|
|
public static final String BUILD_DATE = "${new Date().format('YYMMdd')}";
|
|
}
|
|
""".stripIndent()
|
|
def genFile = new File("${project.generatedJavaDir}/com/annimon/ownlang/Gen.java")
|
|
genFile.getParentFile().mkdirs()
|
|
genFile.write(source)
|
|
}
|
|
}
|
|
compileJava.dependsOn(generateJavaSources)
|
|
|
|
tasks.register('run', JavaExec) {
|
|
dependsOn classes
|
|
mainClass = project.mainClass
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
standardInput = System.in
|
|
ignoreExitValue true
|
|
}
|
|
|
|
tasks.register('runOptimizing', JavaExec) {
|
|
dependsOn classes
|
|
mainClass = project.mainClass
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
ignoreExitValue true
|
|
args '-o 9 -m -a -f program.own'.split(' ')
|
|
}
|
|
|
|
|
|
dependencies {
|
|
implementation ('io.socket:socket.io-client:1.0.2') {
|
|
exclude group: 'org.json', module: 'json'
|
|
}
|
|
implementation 'org.json:json:20230227'
|
|
implementation 'org.yaml:snakeyaml:1.20'
|
|
implementation 'jline:jline:2.14.5'
|
|
|
|
testImplementation platform('org.junit:junit-bom:5.9.2')
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.9.2'
|
|
testImplementation 'org.junit.jupiter:junit-jupiter'
|
|
testImplementation 'org.openjdk.jmh:jmh-core:1.37'
|
|
testImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.37'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
} |