Own-Programming-Language-Tu.../build.gradle

70 lines
2.0 KiB
Groovy
Raw Normal View History

2019-05-22 19:10:48 +03:00
plugins {
2023-08-12 23:58:11 +03:00
id 'java'
2019-05-22 19:10:48 +03:00
}
2023-08-12 23:58:11 +03:00
group = 'com.annimon'
version = '2.0-SNAPSHOT'
2019-05-22 19:10:48 +03:00
[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 {
2023-08-12 23:58:11 +03:00
mavenCentral()
2019-05-22 19:10:48 +03:00
}
2023-08-12 23:58:11 +03:00
tasks.register('generateJavaSources') {
2019-05-22 19:10:48 +03:00
doLast {
def source = """
package com.annimon.ownlang;
class Gen {
private Gen() {}
public static final String BUILD_DATE = "${new Date().format('YYMMdd')}";
}
2023-08-12 23:58:11 +03:00
""".stripIndent()
2019-05-22 19:10:48 +03:00
def genFile = new File("${project.generatedJavaDir}/com/annimon/ownlang/Gen.java")
genFile.getParentFile().mkdirs()
genFile.write(source)
}
}
compileJava.dependsOn(generateJavaSources)
2023-08-12 23:58:11 +03:00
tasks.register('run', JavaExec) {
dependsOn classes
mainClass = project.mainClass
2019-05-22 19:10:48 +03:00
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
2023-08-12 23:58:11 +03:00
ignoreExitValue true
2019-05-22 19:10:48 +03:00
}
2023-08-12 23:58:11 +03:00
tasks.register('runOptimizing', JavaExec) {
dependsOn classes
mainClass = project.mainClass
2019-05-22 19:10:48 +03:00
classpath = sourceSets.main.runtimeClasspath
2023-08-12 23:58:11 +03:00
ignoreExitValue true
2019-05-22 19:10:48 +03:00
args '-o 9 -m -a -f program.own'.split(' ')
}
dependencies {
2023-08-12 23:58:11 +03:00
implementation ('io.socket:socket.io-client:1.0.2') {
exclude group: 'org.json', module: 'json'
2019-05-22 19:10:48 +03:00
}
2023-08-12 23:58:11 +03:00
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'
2019-05-22 19:10:48 +03:00
}
test {
2023-08-12 23:58:11 +03:00
useJUnitPlatform()
}