Select Git revision
build.gradle
build.gradle 4.97 KiB
// General configuration (plugins, settings, dependencies)
group 'de.tudresden.inf.st'
version '0.1'
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'jastadd'
apply plugin: 'application'
apply plugin: "idea"
apply plugin: 'java-library'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories.mavenCentral()
buildscript {
repositories.mavenCentral()
dependencies {
classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
}
}
idea.module.generatedSourceDirs += file('src/gen/java')
sourceSets.main.java.srcDir "src/gen/java"
jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.pnml.Main')
dependencies {
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.13.2'
implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
// pnml lib
implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore', version: '2.12.0'
implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore.xmi', version: '2.12.0'
implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.common', version: '2.12.0'
implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.mwe.core', version: '1.3.13'
api group: 'fr.lip6.pnml', name: 'fr.lip6.pnml.framework.ptnet', version: '2.2.12'
api group: 'fr.lip6.pnml', name: 'fr.lip6.pnml.framework.utils', version: '2.2.12'
implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-api', version: '1.2.22'
implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.22'
implementation group: 'com.thaiopensource', name: 'jing', version: '20091111'
implementation 'org.jetbrains:annotations:19.0.0'
// https://mvnrepository.com/artifact/xalan/xalan
implementation group: 'xalan', name: 'xalan', version: '2.7.2'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
jastadd2 "org.jastadd:jastadd:2.3.4"
}
// Default run configuration
run {
mainClassName = 'de.tudresden.inf.st.pnml.Main'
standardInput = System.in
}
// Generated files
def ecoreFile = "./src/main/resources/placeTransition.ecore"
def relastAspect = "./src/gen/jastadd/pnml/placeTransition.ecore.jadd"
def relastFile = "./src/gen/jastadd/pnml/placeTransition.relast"
// First phase: Ecore -> RelAst
task ecoreToRelast(type: JavaExec) {
group = 'Build'
main = "-jar"
doFirst {
delete "src/gen/jastadd"
mkdir "src/gen/jastadd/pnml"
}
args "libs/ecore2relast-0.1.jar", ecoreFile, relastFile
inputs.files file(ecoreFile)
outputs.files file(relastFile), file(relastAspect)
}
// Second phase: RelAst -> JastAdd
task relastToJastAdd(type: JavaExec) {
group = 'Build'
main = "-jar"
args "libs/relast.jar",
"--grammarName=./src/gen/jastadd/placeTransition",
"--useJastAddNames",
"--listClass=ArrayList",
"--jastAddList=JastAddList",
"--resolverHelper",
"--file",
relastFile,
"./src/main/jastadd/marking/Marking.relast",
"./src/main/jastadd/io/IoPN.relast"
}
// Third phase: JastAdd -> Java (using JastAdd Gradle plugin)
jastadd {
configureModuleBuild()
modules {
module("pnml") {
java {
basedir "src/"
include "main/**/*.java"
include "gen/**/*.java"
}
jastadd {
basedir "src/"
include "main/jastadd/**/*.ast"
include "main/jastadd/**/*.jadd"
include "main/jastadd/**/*.jrag"
include "gen/jastadd/**/*.ast"
include "gen/jastadd/**/*.jadd"
include "gen/jastadd/**/*.jrag"
}
scanner {
include "src/main/jastadd/PnmlScanner.flex"
}
parser {
include "src/main/jastadd/PnmlParser.parser"
}
}
}
cleanGen.doFirst {
delete "src/gen/java/de"
delete "src/gen-res/BuildInfo.properties"
}
module = "pnml"
astPackage = 'de.tudresden.inf.st.pnml.jastadd.model'
genDir = 'src/gen/java'
buildInfoDir = 'src/gen-res'
scanner.genDir = "src/gen/java/de/tudresden/inf/st/pnml/jastadd/scanner"
parser.genDir = "src/gen/java/de/tudresden/inf/st/pnml/jastadd/parser"
// default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
extraJastAddOptions = ['--List=JastAddList'] // '--incremental=param'
}
// Workflow configuration for phases
relastToJastAdd.dependsOn ecoreToRelast
generateAst.dependsOn relastToJastAdd
//// always run jastadd
//jastadd.outputs.upToDateWhen {false}