diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-11-17 03:06:39 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-11-17 03:06:39 +0100 |
commit | 720b9e2fb0968905e5a80f6099eab37554a6af58 (patch) | |
tree | b471f4da129efbfa730830a70e0107de852833d7 /gradle | |
parent | build: use version catalogs (diff) | |
download | refinery-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.gradle | 43 | ||||
-rw-r--r-- | gradle/jmh.gradle | 53 | ||||
-rw-r--r-- | gradle/junit.gradle | 30 | ||||
-rw-r--r-- | gradle/libs.versions.toml | 4 | ||||
-rw-r--r-- | gradle/mwe2.gradle | 11 | ||||
-rw-r--r-- | gradle/xtend.gradle | 33 | ||||
-rw-r--r-- | gradle/xtext-common.gradle | 18 |
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 @@ | |||
1 | repositories { | ||
2 | mavenCentral() | ||
3 | maven { | ||
4 | url 'https://repo.eclipse.org/content/groups/releases/' | ||
5 | } | ||
6 | } | ||
7 | |||
8 | sourceCompatibility = '17' | ||
9 | targetCompatibility = '17' | ||
10 | |||
11 | tasks.named('jar') { | ||
12 | manifest { | ||
13 | attributes 'Bundle-SymbolicName': project.name | ||
14 | } | ||
15 | } | ||
16 | |||
17 | apply plugin: 'eclipse' | ||
18 | |||
19 | def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders') | ||
20 | |||
21 | tasks.register('prepareEclipse') { | ||
22 | dependsOn generateEclipseSourceFolders | ||
23 | dependsOn tasks.named('eclipseJdt') | ||
24 | } | ||
25 | |||
26 | tasks.named('eclipseClasspath') { | ||
27 | dependsOn generateEclipseSourceFolders | ||
28 | } | ||
29 | |||
30 | eclipse { | ||
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 @@ | |||
1 | configurations { | ||
2 | jmh { | ||
3 | extendsFrom implementation | ||
4 | } | ||
5 | } | ||
6 | |||
7 | sourceSets { | ||
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 | |||
16 | dependencies { | ||
17 | jmhImplementation libs.jmh.core | ||
18 | jmhAnnotationProcessor libs.jmh.annprocess | ||
19 | } | ||
20 | |||
21 | tasks.register('jmh', JavaExec) { | ||
22 | dependsOn tasks.named('jmhClasses') | ||
23 | main = 'org.openjdk.jmh.Main' | ||
24 | classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath | ||
25 | } | ||
26 | |||
27 | eclipse.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 | |||
49 | sonarqube.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 @@ | |||
1 | apply plugin: 'jacoco' | ||
2 | |||
3 | dependencies { | ||
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 | |||
12 | def jacocoTestReport = tasks.named('jacocoTestReport') | ||
13 | jacocoTestReport.configure { | ||
14 | dependsOn test | ||
15 | reports { | ||
16 | xml.required = true | ||
17 | } | ||
18 | } | ||
19 | |||
20 | tasks.named('test') { | ||
21 | useJUnitPlatform { | ||
22 | excludeTags 'slow' | ||
23 | } | ||
24 | finalizedBy jacocoTestReport | ||
25 | } | ||
26 | |||
27 | tasks.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", | |||
28 | mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } | 28 | mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } |
29 | slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } | 29 | slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } |
30 | slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } | 30 | slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } |
31 | sonarqubeGradle = { group = "org.sonarsource.scanner.gradle", name = "sonarqube-gradle-plugin", version = "3.3" } | ||
31 | viatra = { group = "org.eclipse.viatra", name = "viatra-query-runtime", version = "2.6.0" } | 32 | viatra = { group = "org.eclipse.viatra", name = "viatra-query-runtime", version = "2.6.0" } |
32 | xtend-lib = { group = "org.eclipse.xtend", name = "org.eclipse.xtend.lib", version.ref = "xtext" } | 33 | xtend-lib = { group = "org.eclipse.xtend", name = "org.eclipse.xtend.lib", version.ref = "xtext" } |
34 | xtendGradle = { group = "org.xtext", name = "xtext-gradle-plugin", version = "3.0.0" } | ||
33 | xtext-bom = { group = "org.eclipse.xtext", name = "xtext-dev-bom", version.ref = "xtext" } | 35 | xtext-bom = { group = "org.eclipse.xtext", name = "xtext-dev-bom", version.ref = "xtext" } |
34 | xtext-core = { group = "org.eclipse.xtext", name = "org.eclipse.xtext", version.ref = "xtext" } | 36 | xtext-core = { group = "org.eclipse.xtext", name = "org.eclipse.xtext", version.ref = "xtext" } |
35 | xtext-generator-antlr = { group = "org.eclipse.xtext", name = "xtext-antlr-generator", version = "2.1.1" } | 37 | xtext-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] |
44 | shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.0" } | 46 | shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.0" } |
45 | frontend = { id = "org.siouan.frontend-jdk11", version = "5.3.0" } | 47 | frontend = { id = "org.siouan.frontend-jdk11", version = "5.3.0" } |
46 | sonarqube = { id = "org.sonarqube", version = "3.3" } | ||
47 | xtend = { 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 @@ | |||
1 | configurations { | ||
2 | mwe2 { | ||
3 | extendsFrom implementation | ||
4 | } | ||
5 | } | ||
6 | |||
7 | dependencies { | ||
8 | mwe2 libs.mwe2.launch | ||
9 | } | ||
10 | |||
11 | eclipse.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 @@ | |||
1 | apply plugin: libs.plugins.xtend.get().pluginId | ||
2 | |||
3 | sourceSets { | ||
4 | main { | ||
5 | xtendOutputDir = 'src/main/xtend-gen' | ||
6 | } | ||
7 | test { | ||
8 | xtendOutputDir = 'src/test/xtend-gen' | ||
9 | } | ||
10 | } | ||
11 | |||
12 | xtend.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 | |||
18 | tasks.named('clean') { | ||
19 | delete 'src/main/xtend-gen' | ||
20 | delete 'src/test/xtend-gen' | ||
21 | } | ||
22 | |||
23 | sonarqube.properties { | ||
24 | properties['sonar.exclusions'] += [ | ||
25 | 'src/main/xtend-gen/**', | ||
26 | 'src/test/xtend-gen/**', | ||
27 | ] | ||
28 | } | ||
29 | |||
30 | tasks.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 @@ | |||
1 | apply from: "${rootDir}/gradle/java-common.gradle" | ||
2 | |||
3 | sourceSets { | ||
4 | main { | ||
5 | java.srcDirs += ['src/main/xtext-gen'] | ||
6 | resources.srcDirs += ['src/main/xtext-gen'] | ||
7 | } | ||
8 | } | ||
9 | |||
10 | tasks.named('clean') { | ||
11 | delete 'src/main/xtext-gen' | ||
12 | } | ||
13 | |||
14 | sonarqube.properties { | ||
15 | properties['sonar.exclusions'] += [ | ||
16 | 'src/main/xtext-gen/**', | ||
17 | ] | ||
18 | } | ||