Own-Programming-Language-Tu.../build.gradle
2023-08-12 23:58:11 +03:00

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()
}