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