aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language/build.gradle.kts')
-rw-r--r--subprojects/language/build.gradle.kts65
1 files changed, 65 insertions, 0 deletions
diff --git a/subprojects/language/build.gradle.kts b/subprojects/language/build.gradle.kts
new file mode 100644
index 00000000..ed4f95a5
--- /dev/null
+++ b/subprojects/language/build.gradle.kts
@@ -0,0 +1,65 @@
1import tools.refinery.buildsrc.SonarPropertiesUtils
2
3plugins {
4 id("refinery-java-library")
5 id("refinery-java-test-fixtures")
6 id("refinery-sonarqube")
7 id("refinery-mwe2")
8 id("refinery-xtext-conventions")
9}
10
11dependencies {
12 api(platform(libs.xtext.bom))
13 api(libs.ecore)
14 api(libs.xtext.core)
15 api(libs.xtext.xbase)
16 api(project(":refinery-language-model"))
17 testFixturesApi(libs.xtext.testing)
18 mwe2(libs.xtext.generator)
19 mwe2(libs.xtext.generator.antlr)
20}
21
22sourceSets {
23 testFixtures {
24 java.srcDir("src/testFixtures/xtext-gen")
25 resources.srcDir("src/testFixtures/xtext-gen")
26 }
27}
28
29tasks.jar {
30 from(sourceSets.main.map { it.allSource }) {
31 include("**/*.xtext")
32 }
33}
34
35val generateXtextLanguage by tasks.registering(JavaExec::class) {
36 mainClass.set("org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher")
37 classpath(configurations.mwe2)
38 inputs.file("src/main/java/tools/refinery/language/GenerateProblem.mwe2")
39 inputs.file("src/main/java/tools/refinery/language/Problem.xtext")
40 outputs.dir("src/main/xtext-gen")
41 outputs.dir("src/testFixtures/xtext-gen")
42 outputs.dir("../language-ide/src/main/xtext-gen")
43 outputs.dir("../language-web/src/main/xtext-gen")
44 args("src/main/java/tools/refinery/language/GenerateProblem.mwe2", "-p", "rootPath=/$projectDir/..")
45}
46
47for (taskName in listOf("compileJava", "processResources", "processTestFixturesResources",
48 "generateEclipseSourceFolders")) {
49 tasks.named(taskName) {
50 dependsOn(generateXtextLanguage)
51 }
52}
53
54tasks.clean {
55 delete("src/main/xtext-gen")
56 delete("src/testFixtures/xtext-gen")
57 delete("../language-ide/src/main/xtext-gen")
58 delete("../language-web/src/main/xtext-gen")
59}
60
61sonarqube.properties {
62 SonarPropertiesUtils.addToList(properties, "sonar.exclusions", "src/textFixtures/xtext-gen/**")
63}
64
65eclipse.project.natures.plusAssign("org.eclipse.xtext.ui.shared.xtextNature")