aboutsummaryrefslogtreecommitdiffstats
path: root/gradle
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-11-17 03:06:39 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-11-17 03:06:39 +0100
commit720b9e2fb0968905e5a80f6099eab37554a6af58 (patch)
treeb471f4da129efbfa730830a70e0107de852833d7 /gradle
parentbuild: use version catalogs (diff)
downloadrefinery-720b9e2fb0968905e5a80f6099eab37554a6af58.tar.gz
refinery-720b9e2fb0968905e5a80f6099eab37554a6af58.tar.zst
refinery-720b9e2fb0968905e5a80f6099eab37554a6af58.zip
build: move scripts into script plugins
Script plugins allow applying other plugins from plugins { } blocks, which simplifies the build script.
Diffstat (limited to 'gradle')
-rw-r--r--gradle/java-common.gradle43
-rw-r--r--gradle/jmh.gradle53
-rw-r--r--gradle/junit.gradle30
-rw-r--r--gradle/libs.versions.toml4
-rw-r--r--gradle/mwe2.gradle11
-rw-r--r--gradle/xtend.gradle33
-rw-r--r--gradle/xtext-common.gradle18
7 files changed, 2 insertions, 190 deletions
diff --git a/gradle/java-common.gradle b/gradle/java-common.gradle
deleted file mode 100644
index 0a63cfe1..00000000
--- a/gradle/java-common.gradle
+++ /dev/null
@@ -1,43 +0,0 @@
1repositories {
2 mavenCentral()
3 maven {
4 url 'https://repo.eclipse.org/content/groups/releases/'
5 }
6}
7
8sourceCompatibility = '17'
9targetCompatibility = '17'
10
11tasks.named('jar') {
12 manifest {
13 attributes 'Bundle-SymbolicName': project.name
14 }
15}
16
17apply plugin: 'eclipse'
18
19def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders')
20
21tasks.register('prepareEclipse') {
22 dependsOn generateEclipseSourceFolders
23 dependsOn tasks.named('eclipseJdt')
24}
25
26tasks.named('eclipseClasspath') {
27 dependsOn generateEclipseSourceFolders
28}
29
30eclipse {
31 classpath.file.whenMerged {
32 for (entry in entries) {
33 if (entry.path.endsWith('-gen')) {
34 entry.entryAttributes['ignore_optional_problems'] = true
35 }
36 }
37 }
38
39 jdt.file.withProperties { properties ->
40 // Allow @SupperessWarnings to suppress SonarLint warnings
41 properties['org.eclipse.jdt.core.compiler.problem.unhandledWarningToken'] = 'ignore'
42 }
43}
diff --git a/gradle/jmh.gradle b/gradle/jmh.gradle
deleted file mode 100644
index aa58c2b7..00000000
--- a/gradle/jmh.gradle
+++ /dev/null
@@ -1,53 +0,0 @@
1configurations {
2 jmh {
3 extendsFrom implementation
4 }
5}
6
7sourceSets {
8 jmh {
9 java.srcDirs = ['src/jmh/java']
10 resources.srcDirs = ['src/jmh/resources']
11 compileClasspath += sourceSets.main.runtimeClasspath
12 compileClasspath += sourceSets.test.runtimeClasspath
13 }
14}
15
16dependencies {
17 jmhImplementation libs.jmh.core
18 jmhAnnotationProcessor libs.jmh.annprocess
19}
20
21tasks.register('jmh', JavaExec) {
22 dependsOn tasks.named('jmhClasses')
23 main = 'org.openjdk.jmh.Main'
24 classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath
25}
26
27eclipse.classpath {
28 plusConfigurations += [configurations.jmhCompileClasspath, configurations.jmhRuntimeClasspath]
29
30 file.whenMerged { classpath ->
31 for (entry in classpath.entries) {
32 // Workaround from https://github.com/gradle/gradle/issues/4802#issuecomment-407902081
33 if (entry in org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry) {
34 def usedBy = (entry.entryAttributes['gradle_used_by_scope'] ?: '').split(',')
35 if (usedBy == ['jmh']) {
36 // Allow test helper classes to be used in benchmarks from Eclipse
37 // and do not expose JMH dependencies to the main source code.
38 entry.entryAttributes['test'] = true
39 } else if ((usedBy.contains('main') || usedBy.contains('test')) && !usedBy.contains('jmh')) {
40 // main and test sources are also used by jmh sources.
41 usedBy += 'jmh'
42 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',')
43 }
44 }
45 }
46 }
47}
48
49sonarqube.properties {
50 properties['sonar.tests'] += [
51 'src/jmh/java',
52 ]
53}
diff --git a/gradle/junit.gradle b/gradle/junit.gradle
deleted file mode 100644
index c5b60e47..00000000
--- a/gradle/junit.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
1apply plugin: 'jacoco'
2
3dependencies {
4 testImplementation libs.hamcrest
5 testImplementation libs.junit.api
6 testRuntimeOnly libs.junit.engine
7 testImplementation libs.junit.params
8 testImplementation libs.mockito.core
9 testImplementation libs.mockito.junit
10}
11
12def jacocoTestReport = tasks.named('jacocoTestReport')
13jacocoTestReport.configure {
14 dependsOn test
15 reports {
16 xml.required = true
17 }
18}
19
20tasks.named('test') {
21 useJUnitPlatform {
22 excludeTags 'slow'
23 }
24 finalizedBy jacocoTestReport
25}
26
27tasks.register('slowTest', Test) {
28 useJUnitPlatform()
29 finalizedBy jacocoTestReport
30}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 0e711cad..3f08c9ab 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -28,8 +28,10 @@ mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch",
28mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } 28mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" }
29slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } 29slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }
30slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } 30slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" }
31sonarqubeGradle = { group = "org.sonarsource.scanner.gradle", name = "sonarqube-gradle-plugin", version = "3.3" }
31viatra = { group = "org.eclipse.viatra", name = "viatra-query-runtime", version = "2.6.0" } 32viatra = { group = "org.eclipse.viatra", name = "viatra-query-runtime", version = "2.6.0" }
32xtend-lib = { group = "org.eclipse.xtend", name = "org.eclipse.xtend.lib", version.ref = "xtext" } 33xtend-lib = { group = "org.eclipse.xtend", name = "org.eclipse.xtend.lib", version.ref = "xtext" }
34xtendGradle = { group = "org.xtext", name = "xtext-gradle-plugin", version = "3.0.0" }
33xtext-bom = { group = "org.eclipse.xtext", name = "xtext-dev-bom", version.ref = "xtext" } 35xtext-bom = { group = "org.eclipse.xtext", name = "xtext-dev-bom", version.ref = "xtext" }
34xtext-core = { group = "org.eclipse.xtext", name = "org.eclipse.xtext", version.ref = "xtext" } 36xtext-core = { group = "org.eclipse.xtext", name = "org.eclipse.xtext", version.ref = "xtext" }
35xtext-generator-antlr = { group = "org.eclipse.xtext", name = "xtext-antlr-generator", version = "2.1.1" } 37xtext-generator-antlr = { group = "org.eclipse.xtext", name = "xtext-antlr-generator", version = "2.1.1" }
@@ -43,5 +45,3 @@ xtext-xbase-ide = { group = "org.eclipse.xtext", name = "org.eclipse.xtext.xbase
43[plugins] 45[plugins]
44shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.0" } 46shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.0" }
45frontend = { id = "org.siouan.frontend-jdk11", version = "5.3.0" } 47frontend = { id = "org.siouan.frontend-jdk11", version = "5.3.0" }
46sonarqube = { id = "org.sonarqube", version = "3.3" }
47xtend = { id = "org.xtext.xtend", version = "3.0.0-M1" }
diff --git a/gradle/mwe2.gradle b/gradle/mwe2.gradle
deleted file mode 100644
index 6dc3ef67..00000000
--- a/gradle/mwe2.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
1configurations {
2 mwe2 {
3 extendsFrom implementation
4 }
5}
6
7dependencies {
8 mwe2 libs.mwe2.launch
9}
10
11eclipse.classpath.plusConfigurations += [configurations.mwe2]
diff --git a/gradle/xtend.gradle b/gradle/xtend.gradle
deleted file mode 100644
index 94cd7dc7..00000000
--- a/gradle/xtend.gradle
+++ /dev/null
@@ -1,33 +0,0 @@
1apply plugin: libs.plugins.xtend.get().pluginId
2
3sourceSets {
4 main {
5 xtendOutputDir = 'src/main/xtend-gen'
6 }
7 test {
8 xtendOutputDir = 'src/test/xtend-gen'
9 }
10}
11
12xtend.generator {
13 // As of Xtext 2.26.0.M2, the Xbase compiler doesn't know how to handle Java 12 and up
14 // and the build fails with a NullPointerException if such Java version is specified.
15 javaSourceLevel = '11'
16}
17
18tasks.named('clean') {
19 delete 'src/main/xtend-gen'
20 delete 'src/test/xtend-gen'
21}
22
23sonarqube.properties {
24 properties['sonar.exclusions'] += [
25 'src/main/xtend-gen/**',
26 'src/test/xtend-gen/**',
27 ]
28}
29
30tasks.named('generateEclipseSourceFolders') {
31 dependsOn tasks.named('generateXtext')
32 dependsOn tasks.named('generateTestXtext')
33}
diff --git a/gradle/xtext-common.gradle b/gradle/xtext-common.gradle
deleted file mode 100644
index 09980a90..00000000
--- a/gradle/xtext-common.gradle
+++ /dev/null
@@ -1,18 +0,0 @@
1apply from: "${rootDir}/gradle/java-common.gradle"
2
3sourceSets {
4 main {
5 java.srcDirs += ['src/main/xtext-gen']
6 resources.srcDirs += ['src/main/xtext-gen']
7 }
8}
9
10tasks.named('clean') {
11 delete 'src/main/xtext-gen'
12}
13
14sonarqube.properties {
15 properties['sonar.exclusions'] += [
16 'src/main/xtext-gen/**',
17 ]
18}