From 07c72e4b7c4a05d5c7963ba83afa71d0046f5e70 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Sun, 6 Mar 2022 23:04:05 +0100 Subject: [PATCH] use preprocessor from package --- build.gradle | 68 +++++++++++++------ gradle.properties | 2 + .../resources/RelAstPreprocessor/config.yaml | 4 +- 3 files changed, 52 insertions(+), 22 deletions(-) create mode 100644 gradle.properties diff --git a/build.gradle b/build.gradle index 78228de..3e8eb66 100644 --- a/build.gradle +++ b/build.gradle @@ -14,11 +14,20 @@ application.mainClassName = "${mainClassName}" repositories { mavenCentral() + maven { + name 'gitlab-maven' + url 'https://git-st.inf.tu-dresden.de/api/v4/groups/jastadd/-/packages/maven' + } +} + +configurations { + relast } dependencies { - implementation project(':relast.preprocessor') - testImplementation testFixtures(project(":relast.preprocessor")) + relast group: 'org.jastadd', name: 'relast', version: "${relast_version}" + implementation group: 'org.jastadd', name: 'relast-preprocessor', version: "${preprocessor_version}" + testImplementation testFixtures(group: 'org.jastadd', name: 'relast-preprocessor', version: "${preprocessor_version}") } project.version = "0.2.0" @@ -35,20 +44,37 @@ test { maxHeapSize = '1G' } +task extractJastAddSources(type: Sync) { + + dependsOn configurations.runtimeClasspath + configurations.runtimeClasspath.asFileTree.filter { it.toString().endsWith("relast-preprocessor-${preprocessor_version}.jar") }.collect { + from(zipTree(it)) { + include "**/*.jrag" + include "**/*.jadd" + include "**/*.ast" + include "**/*.relast" + include "**/*.flex" + include "**/*.parser" + } + } + includeEmptyDirs false + into file("${project.buildDir}/tmp/jastadd-sources") +} + jar { manifest { attributes "Main-Class": "${mainClassName}" } from { - configurations.runtimeClasspath.collect { return (it.exists() && (!it.toString().contains("/build/libs/")|| it.toString().contains("-base-"))) ? (it.isDirectory() ? it : zipTree(it)) : null } + configurations.runtimeClasspath.collect {it.isDirectory() ? it : zipTree(it) } } } // Input and output files for relast def relastInputFiles = [ - "relast.preprocessor/src/main/jastadd/RelAst.relast", - "relast.preprocessor/src/main/jastadd/mustache/Mustache.relast" + "${project.buildDir}/tmp/jastadd-sources/RelAst.relast", + "${project.buildDir}/tmp/jastadd-sources/mustache/Mustache.relast" ] def relastOutputFiles = [ "src/gen/jastadd/RelAst.ast", @@ -59,8 +85,11 @@ def relastOutputFiles = [ task relast(type: JavaExec) { - classpath = files("relast.preprocessor/libs/relast.jar") group = 'Build' + classpath = configurations.relast + mainClass = 'org.jastadd.relast.compiler.Compiler' + + dependsOn extractJastAddSources doFirst { delete relastOutputFiles @@ -88,9 +117,9 @@ jastadd { jastadd { basedir "." - include "relast.preprocessor/src/main/jastadd/**/*.ast" - include "relast.preprocessor/src/main/jastadd/**/*.jadd" - include "relast.preprocessor/src/main/jastadd/**/*.jrag" + include "build/tmp/jastadd-sources/**/*.ast" + include "build/tmp/jastadd-sources/**/*.jadd" + include "build/tmp/jastadd-sources/**/*.jrag" include "src/main/jastadd/**/*.ast" include "src/main/jastadd/**/*.jadd" include "src/main/jastadd/**/*.jrag" @@ -100,18 +129,18 @@ jastadd { } scanner { - include "relast.preprocessor/src/main/jastadd/scanner/Header.flex", [-4] - include "relast.preprocessor/src/main/jastadd/scanner/Preamble.flex", [-3] - include "relast.preprocessor/src/main/jastadd/scanner/Macros.flex", [-2] - include "relast.preprocessor/src/main/jastadd/scanner/RulesPreamble.flex", [-1] - include "relast.preprocessor/src/main/jastadd/scanner/Keywords.flex", [ 0] - include "relast.preprocessor/src/main/jastadd/scanner/Symbols.flex", [ 1] - include "relast.preprocessor/src/main/jastadd/scanner/RulesPostamble.flex", [ 2] + include "build/tmp/jastadd-sources/scanner/Header.flex", [-4] + include "build/tmp/jastadd-sources/scanner/Preamble.flex", [-3] + include "build/tmp/jastadd-sources/scanner/Macros.flex", [-2] + include "build/tmp/jastadd-sources/scanner/RulesPreamble.flex", [-1] + include "build/tmp/jastadd-sources/scanner/Keywords.flex", [ 0] + include "build/tmp/jastadd-sources/scanner/Symbols.flex", [ 1] + include "build/tmp/jastadd-sources/scanner/RulesPostamble.flex", [ 2] } parser { - include "relast.preprocessor/src/main/jastadd/parser/Preamble.parser" - include "relast.preprocessor/src/main/jastadd/parser/RelAst.parser" + include "build/tmp/jastadd-sources/parser/Preamble.parser" + include "build/tmp/jastadd-sources/parser/RelAst.parser" } } } @@ -142,5 +171,4 @@ jastadd { } clean.dependsOn(cleanGen) -generateAst.dependsOn(relast) -jar.dependsOn("relast.preprocessor:jar") // the jar is a fat jar that contains the jar of the preprocessor +generateAst.dependsOn(relast, extractJastAddSources) diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..47cf024 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +relast_version = 0.3.0-137 +preprocessor_version = 0.1.0-41 \ No newline at end of file diff --git a/src/test/resources/RelAstPreprocessor/config.yaml b/src/test/resources/RelAstPreprocessor/config.yaml index 0122f6c..87455fb 100644 --- a/src/test/resources/RelAstPreprocessor/config.yaml +++ b/src/test/resources/RelAstPreprocessor/config.yaml @@ -1,7 +1,7 @@ - name: "RelAST Preprocessor Grammar from submodule (null)" - in: "../../../../relast.preprocessor/src/main/jastadd/" + in: "../../../../build/tmp/jastadd-sources/" args: - - "--inputBaseDir=../../../../relast.preprocessor/src/main/jastadd/" + - "--inputBaseDir=../../../../build/tmp/jastadd-sources/" - "--outputBaseDir=out" - "--errorHandling=null" - "RelAst.relast" -- GitLab