aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/build.gradle.kts
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-04-09 02:54:51 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-04-09 19:07:32 +0200
commitd904e2150319439053d89c723733463c4810bde9 (patch)
tree974068147ce55eda08a27f8fa08e833f4f7d701e /subprojects/language/build.gradle.kts
parentbuild: avoid repeating task names in build scripts (diff)
downloadrefinery-d904e2150319439053d89c723733463c4810bde9.tar.gz
refinery-d904e2150319439053d89c723733463c4810bde9.tar.zst
refinery-d904e2150319439053d89c723733463c4810bde9.zip
build: organize build scripts into packages
Also take advantage of precompiled Kotlin scripts to write build scripts in a more straightforward manner through generated accessors. Might increase memory usage of Gradle.
Diffstat (limited to 'subprojects/language/build.gradle.kts')
-rw-r--r--subprojects/language/build.gradle.kts64
1 files changed, 33 insertions, 31 deletions
diff --git a/subprojects/language/build.gradle.kts b/subprojects/language/build.gradle.kts
index ed4f95a5..4cfe6895 100644
--- a/subprojects/language/build.gradle.kts
+++ b/subprojects/language/build.gradle.kts
@@ -1,11 +1,11 @@
1import tools.refinery.buildsrc.SonarPropertiesUtils 1import tools.refinery.gradle.utils.SonarPropertiesUtils
2 2
3plugins { 3plugins {
4 id("refinery-java-library") 4 id("tools.refinery.gradle.java-library")
5 id("refinery-java-test-fixtures") 5 id("tools.refinery.gradle.java-test-fixtures")
6 id("refinery-sonarqube") 6 id("tools.refinery.gradle.mwe2")
7 id("refinery-mwe2") 7 id("tools.refinery.gradle.sonarqube")
8 id("refinery-xtext-conventions") 8 id("tools.refinery.gradle.xtext-generated")
9} 9}
10 10
11dependencies { 11dependencies {
@@ -26,36 +26,38 @@ sourceSets {
26 } 26 }
27} 27}
28 28
29tasks.jar { 29tasks {
30 from(sourceSets.main.map { it.allSource }) { 30 jar {
31 include("**/*.xtext") 31 from(sourceSets.main.map { it.allSource }) {
32 include("**/*.xtext")
33 }
32 } 34 }
33}
34 35
35val generateXtextLanguage by tasks.registering(JavaExec::class) { 36 val generateXtextLanguage by registering(JavaExec::class) {
36 mainClass.set("org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher") 37 mainClass.set("org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher")
37 classpath(configurations.mwe2) 38 classpath(configurations.mwe2)
38 inputs.file("src/main/java/tools/refinery/language/GenerateProblem.mwe2") 39 inputs.file("src/main/java/tools/refinery/language/GenerateProblem.mwe2")
39 inputs.file("src/main/java/tools/refinery/language/Problem.xtext") 40 inputs.file("src/main/java/tools/refinery/language/Problem.xtext")
40 outputs.dir("src/main/xtext-gen") 41 outputs.dir("src/main/xtext-gen")
41 outputs.dir("src/testFixtures/xtext-gen") 42 outputs.dir("src/testFixtures/xtext-gen")
42 outputs.dir("../language-ide/src/main/xtext-gen") 43 outputs.dir("../language-ide/src/main/xtext-gen")
43 outputs.dir("../language-web/src/main/xtext-gen") 44 outputs.dir("../language-web/src/main/xtext-gen")
44 args("src/main/java/tools/refinery/language/GenerateProblem.mwe2", "-p", "rootPath=/$projectDir/..") 45 args("src/main/java/tools/refinery/language/GenerateProblem.mwe2", "-p", "rootPath=/$projectDir/..")
45} 46 }
46 47
47for (taskName in listOf("compileJava", "processResources", "processTestFixturesResources", 48 for (taskName in listOf("compileJava", "processResources", "processTestFixturesResources",
48 "generateEclipseSourceFolders")) { 49 "generateEclipseSourceFolders")) {
49 tasks.named(taskName) { 50 named(taskName) {
50 dependsOn(generateXtextLanguage) 51 dependsOn(generateXtextLanguage)
52 }
51 } 53 }
52}
53 54
54tasks.clean { 55 clean {
55 delete("src/main/xtext-gen") 56 delete("src/main/xtext-gen")
56 delete("src/testFixtures/xtext-gen") 57 delete("src/testFixtures/xtext-gen")
57 delete("../language-ide/src/main/xtext-gen") 58 delete("../language-ide/src/main/xtext-gen")
58 delete("../language-web/src/main/xtext-gen") 59 delete("../language-web/src/main/xtext-gen")
60 }
59} 61}
60 62
61sonarqube.properties { 63sonarqube.properties {