Select Git revision
build.gradle
-
René Schöne authoredRené Schöne authored
build.gradle 13.39 KiB
import org.jastadd.relast.plugin.RelastTest
apply plugin: 'java'
apply plugin: 'jastadd'
apply plugin: 'application'
apply plugin: "idea"
apply plugin: "org.jastadd.relast.plugin"
sourceCompatibility = 1.8
mainClassName = 'org.jastadd.relast.compiler.Compiler'
repositories {
jcenter()
}
group = 'org.jastadd'
apply plugin: 'maven-publish'
buildscript {
repositories.jcenter()
dependencies {
classpath 'org.jastadd:jastaddgradle:1.13.3'
}
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.0'
testCompile 'org.assertj:assertj-core:3.12.1'
compile 'com.fasterxml.jackson.core:jackson-core:2.9.8'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
compile 'org.jastadd:jastadd:2.3.4'
runtime 'org.jastadd:jastadd:2.3.4'
compile group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0'
}
File genSrc = file("src/gen/java")
File testGenSrc = file("src/test/java-gen")
sourceSets.main.java.srcDir genSrc
sourceSets.main.java.srcDir "buildSrc/gen/java"
sourceSets.test.java.srcDir testGenSrc
idea.module.generatedSourceDirs += genSrc
idea.module.generatedSourceDirs += testGenSrc
def versionFile = 'src/main/resources/RelASTVersion.properties'
def oldProps = new Properties()
try {
file(versionFile).withInputStream { stream -> oldProps.load(stream) }
version = oldProps['version']
} catch (ignored) {
// this happens, if either the properties file is not present, or cannot be read from
throw new GradleException("File ${versionFile} not found or unreadable. Aborting.")
}
task newVersion() {
doFirst {
def props = new Properties()
props['version'] = value
props.store(file(versionFile).newWriter(), null)
}
}
jar {
manifest {
attributes "Main-Class": 'org.jastadd.relast.compiler.Compiler'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
archiveBaseName = 'relast'
}
jastadd {
configureModuleBuild()
modules {
//noinspection GroovyAssignabilityCheck
module("RelAst") {
java {
basedir "."
include "src/main/**/*.java"
include "src/gen/**/*.java"
}
jastadd {
basedir "src/main/jastadd/"
include "**/*.ast"
include "**/*.jadd"
include "**/*.jrag"
}
scanner {
include "src/main/jastadd/RelAst.flex"
}
parser {
include "src/main/jastadd/Preamble.parser"
include "src/main/jastadd/RelAst.parser"
}
}
}
cleanGen.doFirst {
delete "src/gen/java/org"
delete "src/gen-res/BuildInfo.properties"
}
preprocessParser.doFirst {
args += ["--no-beaver-symbol"]
}
module = "RelAst"
astPackage = 'org.jastadd.relast.ast'
parser.name = 'RelAstParser'
genDir = 'src/gen/java'
buildInfoDir = 'src/gen-res'
scanner.genDir = "src/gen/java/org/jastadd/relast/scanner"
parser.genDir = "src/gen/java/org/jastadd/relast/parser"
jastaddOptions = ["--lineColumnNumbers", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"]
}
publishing {
publications {
maven(MavenPublication) {
artifact("build/libs/relast-${version}.jar") {
extension 'jar'
}
}
}
repositories {
maven {
name 'nexus'
url "http://172.22.1.152:8081/repository/" + (project.hasProperty('asSnapshot') ? "maven-snapshots" : "maven-releases/")
credentials {
username project.ext.properties.repoUser
password project.ext.properties.repoPassword
}
}
}
}
publish.dependsOn jar
task firstRelationsRun(type: RelastTest) {
relastFiles 'src/test/jastadd/relations/Relations.relast'
grammarName = 'src/test/jastadd/relations/Relations'
useJastAddNames = true
packageName = 'relations.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd', 'src/test/jastadd/relations/Relations.jrag'
}
task secondRelationsRun(type: RelastTest, dependsOn: firstRelationsRun) {
relastFiles 'src/test/jastadd/relations/Relations.ast'
grammarName = 'src/test/jastadd/relations/Relations2'
useJastAddNames = true
packageName = 'ignored'
doLast {
delete fileTree('src/test/java-gen/ignored')
delete 'src/test/java-gen/ignored'
}
}
task compileConstructorTest(type: RelastTest) {
relastFiles 'src/test/jastadd/constructors/Constructors.relast'
grammarName = 'src/test/jastadd/constructors/Constructors'
packageName = 'constructors.ast'
moreInputFiles 'src/test/jastadd/constructors/Constructors.jrag'
}
task compileDefaultNamesTest(type: RelastTest) {
relastFiles 'src/test/jastadd/relations/Relations.relast'
grammarName = 'src/test/jastadd/relations/Relations3'
packageName = 'defaultnames.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd', 'src/test/jastadd/relations/Relations.jrag'
}
task compileDefaultNamesResolverTest(type: RelastTest) {
relastFiles 'src/test/jastadd/resolver/Resolver.relast'
grammarName = 'src/test/jastadd/resolver/Resolver2'
resolverHelper = true
packageName = 'defaultnames.resolver.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd',
'src/test/jastadd/resolver/ResolverUtils.jadd',
'src/test/jastadd/resolver/MyRefResolver.jadd'
}
task compileLowerBoundsTest(type: RelastTest) {
relastFiles 'src/test/jastadd/lowerbounds/LowerBounds.relast'
grammarName = 'src/test/jastadd/lowerbounds/LowerBounds'
useJastAddNames = true
packageName = 'lowerbounds.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileMultipleTest(type: RelastTest) {
relastFiles 'src/test/jastadd/multiple/Part1.relast',
'src/test/jastadd/multiple/Part2.relast',
'src/test/jastadd/multiple/Part3.relast'
grammarName = 'src/test/jastadd/multiple/Multiple'
useJastAddNames = true
packageName = 'multiple.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileMultipleMixedTest(type: RelastTest) {
relastFiles 'src/test/jastadd/multiple-mixed/Part1.relast',
'src/test/jastadd/multiple-mixed/Part2.relast',
'src/test/jastadd/multiple-mixed/Part3.relast'
grammarName = 'src/test/jastadd/multiple/Multiple'
useJastAddNames = true
packageName = 'mixed.multiple.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileResolverTest(type: RelastTest) {
relastFiles 'src/test/jastadd/resolver/Resolver.relast'
grammarName = 'src/test/jastadd/resolver/Resolver'
useJastAddNames = true
resolverHelper = true
packageName = 'resolver.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd',
'src/test/jastadd/resolver/ResolverUtils.jadd',
'src/test/jastadd/resolver/MyRefResolver.jadd'
}
task compileResolver2Test(type: RelastTest) {
relastFiles 'src/test/jastadd/resolver2/Resolver.relast'
grammarName = 'src/test/jastadd/resolver2/Resolver'
useJastAddNames = true
resolverHelper = true
packageName = 'resolver2.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd',
'src/test/jastadd/resolver2/ResolverUtils.jadd',
'src/test/jastadd/resolver2/MyRefResolver.jadd'
}
task compileListNamesTest(type: RelastTest) {
relastFiles 'src/test/jastadd/listnames/ListNames.relast'
grammarName = 'src/test/jastadd/listnames/ListNames'
useJastAddNames = true
jastAddList = 'ListyMcListface'
listClass = 'java.util.LinkedList'
packageName = 'listnames.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileSerializerTest(type: RelastTest) {
relastFiles 'src/test/jastadd/serializer/Serializer.relast'
grammarName = 'src/test/jastadd/serializer/Serializer'
useJastAddNames = true
serializer = 'jackson'
packageName = 'serializer.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileSerializerDefaultNamesTest(type: RelastTest) {
relastFiles 'src/test/jastadd/serializer-names/Serializer.relast'
grammarName = 'src/test/jastadd/serializer-names/Serializer'
serializer = 'jackson'
packageName = 'defaultnames.serializer.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileSerializerPointerTest(type: RelastTest) {
resolverHelper = true
relastFiles 'src/test/jastadd/serializer-pointer/Serializer.relast'
grammarName = 'src/test/jastadd/serializer-pointer/Serializer'
serializer = 'jackson-json-pointer'
packageName = 'pointer.serializer.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd'
}
task compileSerializerManualTest(type: RelastTest) {
resolverHelper = true
relastFiles 'src/test/jastadd/serializer-manual/Serializer.relast'
grammarName = 'src/test/jastadd/serializer-manual/Serializer'
serializer = 'jackson-manual-references'
packageName = 'manual.serializer.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd', 'src/test/jastadd/serializer-manual/JsonPointer.jrag'
}
task compileSerializerManualRelativeTest(type: RelastTest) {
resolverHelper = true
relastFiles 'src/test/jastadd/serializer-manual-relative/Serializer.relast'
grammarName = 'src/test/jastadd/serializer-manual-relative/Serializer'
serializer = 'jackson-manual-references'
packageName = 'manual.relative.serializer.ast'
moreInputFiles 'src/test/jastadd/Utils.jadd', 'src/test/jastadd/serializer-manual-relative/JsonPointer.jrag'
}
task cleanTestGen(type: Delete) {
group 'verification'
description 'Cleans all generated test resources'
delete 'src/test/jastadd/serializer-names/Serializer.ast'
delete 'src/test/jastadd/serializer-names/Serializer.jadd'
delete 'src/test/jastadd/serializer-names/SerializerSerializer.jadd'
delete 'src/test/jastadd/serializer-names/SerializerResolverStubs.jrag'
delete 'src/test/jastadd/serializer-names/SerializerRefResolver.jadd'
delete 'src/test/jastadd/serializer-manual/Serializer.ast'
delete 'src/test/jastadd/serializer-manual/Serializer.jadd'
delete 'src/test/jastadd/serializer-manual/SerializerSerializer.jadd'
delete 'src/test/jastadd/serializer-manual/SerializerResolverStubs.jrag'
delete 'src/test/jastadd/serializer-manual/SerializerRefResolver.jadd'
delete 'src/test/jastadd/resolver2/Resolver.jadd'
delete 'src/test/jastadd/resolver2/Resolver.ast'
delete 'src/test/jastadd/resolver2/ResolverRefResolver.jadd'
delete 'src/test/jastadd/resolver2/ResolverResolverStubs.jrag'
delete 'src/test/jastadd/serializer-manual-relative/Serializer.ast'
delete 'src/test/jastadd/serializer-manual-relative/Serializer.jadd'
delete 'src/test/jastadd/serializer-manual-relative/SerializerSerializer.jadd'
delete 'src/test/jastadd/serializer-manual-relative/SerializerResolverStubs.jrag'
delete 'src/test/jastadd/serializer-manual-relative/SerializerRefResolver.jadd'
delete 'src/test/jastadd/serializer-pointer/Serializer.ast'
delete 'src/test/jastadd/serializer-pointer/Serializer.jadd'
delete 'src/test/jastadd/serializer-pointer/SerializerSerializer.jadd'
delete 'src/test/jastadd/serializer-pointer/SerializerResolverStubs.jrag'
delete 'src/test/jastadd/serializer-pointer/SerializerRefResolver.jadd'
delete 'src/test/jastadd/lowerbounds/LowerBounds.jadd'
delete 'src/test/jastadd/lowerbounds/LowerBounds.ast'
delete 'src/test/jastadd/resolver/Resolver.jadd'
delete 'src/test/jastadd/resolver/Resolver.ast'
delete 'src/test/jastadd/resolver/Resolver2.jadd'
delete 'src/test/jastadd/resolver/Resolver2.ast'
delete 'src/test/jastadd/resolver/Resolver2ResolverStubs.jrag'
delete 'src/test/jastadd/resolver/ResolverRefResolver.jadd'
delete 'src/test/jastadd/resolver/ResolverResolverStubs.jrag'
delete 'src/test/jastadd/resolver/Resolver2RefResolver.jadd'
delete 'src/test/jastadd/errors/Errors.out'
delete 'src/test/jastadd/errors/Inheritance.out'
delete 'src/test/jastadd/errors/Multiple.out'
delete 'src/test/jastadd/errors/InheritanceLeft.out'
delete 'src/test/jastadd/errors/ErrorsLeft.out'
delete 'src/test/jastadd/errors/MultipleLeft.out'
delete 'src/test/jastadd/serializer/Serializer.ast'
delete 'src/test/jastadd/serializer/Serializer.jadd'
delete 'src/test/jastadd/serializer/SerializerSerializer.jadd'
delete 'src/test/jastadd/serializer/SerializerResolverStubs.jrag'
delete 'src/test/jastadd/serializer/SerializerRefResolver.jadd'
delete 'src/test/jastadd/listnames/ListNames.jadd'
delete 'src/test/jastadd/listnames/ListNames.ast'
delete 'src/test/jastadd/relations/Relations2.jadd'
delete 'src/test/jastadd/relations/Relations3.ast'
delete 'src/test/jastadd/relations/Relations2.ast'
delete 'src/test/jastadd/relations/Relations.ast'
delete 'src/test/jastadd/relations/Relations.jadd'
delete 'src/test/jastadd/relations/Relations3.jadd'
delete 'src/test/jastadd/multiple/Multiple.jadd'
delete 'src/test/jastadd/multiple/Multiple.ast'
delete fileTree('src/test/java-gen/') {
exclude '.gitignore'
}
}
test {
outputs.upToDateWhen { false }
useJUnitPlatform()
dependsOn cleanTestGen
}