aboutsummaryrefslogtreecommitdiffstats
path: root/buildSrc/src
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-07-28 15:30:10 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-07-28 15:30:10 +0200
commitc1f0da324605c18caf137631e58878136a707df4 (patch)
tree37c91983a65d4e7d0816d5ac1b4b2be614fd1e74 /buildSrc/src
parentbuild: fix testFixtures classpath in eclipse (diff)
downloadrefinery-c1f0da324605c18caf137631e58878136a707df4.tar.gz
refinery-c1f0da324605c18caf137631e58878136a707df4.tar.zst
refinery-c1f0da324605c18caf137631e58878136a707df4.zip
build: file encoding import into Eclipse
See https://github.com/gradle/gradle/issues/898
Diffstat (limited to 'buildSrc/src')
-rw-r--r--buildSrc/src/main/groovy/refinery-eclipse.gradle28
-rw-r--r--buildSrc/src/main/groovy/refinery-frontend-workspace.gradle1
-rw-r--r--buildSrc/src/main/groovy/refinery-java-conventions.gradle2
-rw-r--r--buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle4
-rw-r--r--buildSrc/src/main/groovy/refinery-jmh.gradle4
5 files changed, 36 insertions, 3 deletions
diff --git a/buildSrc/src/main/groovy/refinery-eclipse.gradle b/buildSrc/src/main/groovy/refinery-eclipse.gradle
new file mode 100644
index 00000000..ddd15fc2
--- /dev/null
+++ b/buildSrc/src/main/groovy/refinery-eclipse.gradle
@@ -0,0 +1,28 @@
1plugins {
2 id 'eclipse'
3}
4
5// Workaround from https://github.com/gradle/gradle/issues/898#issuecomment-885765821
6def eclipseResourceEncoding = tasks.register('eclipseResourceEncoding') {
7 ext.outputFile = file('.settings/org.eclipse.core.resources.prefs')
8 def compileTask = tasks.findByName('compileJava')
9 ext.encoding = provider({ compileTask?.options?.encoding }).orElse(providers.systemProperty('file.encoding'))
10
11 inputs.property("file.encoding", encoding)
12 outputs.file(outputFile).withPropertyName('outputFile')
13
14 doLast {
15 Properties eclipseEncodingProperties = new Properties(Collections.singletonMap('eclipse.preferences.version','1'))
16 eclipseEncodingProperties.put('encoding/<project>', encoding.get())
17 outputFile.withOutputStream {
18 eclipseEncodingProperties.store(it, 'generated by ' + name)
19 }
20 eclipseEncodingProperties.list(System.out)
21 }
22}
23
24tasks.named('eclipse') {
25 dependsOn(eclipseResourceEncoding)
26}
27
28eclipse.synchronizationTasks(eclipseResourceEncoding)
diff --git a/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle b/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle
index 35410db4..9c6d7b13 100644
--- a/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle
+++ b/buildSrc/src/main/groovy/refinery-frontend-workspace.gradle
@@ -1,4 +1,5 @@
1plugins { 1plugins {
2 id 'refinery-eclipse'
2 id 'refinery-frontend-conventions' 3 id 'refinery-frontend-conventions'
3} 4}
4 5
diff --git a/buildSrc/src/main/groovy/refinery-java-conventions.gradle b/buildSrc/src/main/groovy/refinery-java-conventions.gradle
index 5bc73f61..bbdaa86c 100644
--- a/buildSrc/src/main/groovy/refinery-java-conventions.gradle
+++ b/buildSrc/src/main/groovy/refinery-java-conventions.gradle
@@ -1,7 +1,7 @@
1plugins { 1plugins {
2 id 'eclipse'
3 id 'jacoco' 2 id 'jacoco'
4 id 'java' 3 id 'java'
4 id 'refinery-eclipse'
5} 5}
6 6
7repositories { 7repositories {
diff --git a/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle b/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle
index 326fa868..693cba98 100644
--- a/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle
+++ b/buildSrc/src/main/groovy/refinery-java-test-fixtures.gradle
@@ -24,7 +24,9 @@ eclipse.classpath {
24 if (hasTest && usedBy.contains('testFixtures')) { 24 if (hasTest && usedBy.contains('testFixtures')) {
25 usedBy += 'test' 25 usedBy += 'test'
26 } 26 }
27 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',') 27 if (!usedBy.empty) {
28 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',')
29 }
28 } 30 }
29 } 31 }
30 } 32 }
diff --git a/buildSrc/src/main/groovy/refinery-jmh.gradle b/buildSrc/src/main/groovy/refinery-jmh.gradle
index 17654463..fada4fb3 100644
--- a/buildSrc/src/main/groovy/refinery-jmh.gradle
+++ b/buildSrc/src/main/groovy/refinery-jmh.gradle
@@ -47,7 +47,9 @@ eclipse.classpath.file.whenMerged { classpath ->
47 // main and test sources are also used by jmh sources. 47 // main and test sources are also used by jmh sources.
48 usedBy += 'jmh' 48 usedBy += 'jmh'
49 } 49 }
50 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',') 50 if (!usedBy.empty) {
51 entry.entryAttributes['gradle_used_by_scope'] = usedBy.join(',')
52 }
51 } 53 }
52 } 54 }
53 } 55 }