Commit 4f759b53 authored by Johannes Mey's avatar Johannes Mey
Browse files

Merge branch 'feature/package-submodule' into 'main'

Feature/package submodule

See merge request !2
parents 211134b4 47359926
Pipeline #13142 passed with stages
in 1 minute and 24 seconds
......@@ -6,11 +6,9 @@ stages:
- test
build:
image: openjdk:8
image: openjdk:11
stage: build
script:
# see discussion in the answer of https://stackoverflow.com/questions/44911155/gradle-how-to-include-runtimeonly-dependencies-in-javaexec-classpath
- ./gradlew --console=plain --no-daemon relast.preprocessor:jar
- ./gradlew --console=plain --no-daemon assemble jar
artifacts:
paths:
......@@ -18,7 +16,7 @@ build:
test:
image: openjdk:8
image: openjdk:11
stage: test
script:
- ./gradlew --console=plain --no-daemon check
......
[submodule "relast.preprocessor"]
path = relast.preprocessor
url = ../../relast-preprocessor.git
......@@ -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)
relast_version = 0.3.0-137
preprocessor_version = 0.1.0-41
\ No newline at end of file
#Sun Nov 01 15:07:09 CET 2020
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
......@@ -82,6 +82,7 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
......@@ -129,6 +130,7 @@ fi
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
......
......@@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
......@@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
......@@ -51,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
......@@ -61,28 +64,14 @@ echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
......
Subproject commit cee30f5c8a1b356118f5ed78302a1df64fe76897
- 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"
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment