aboutsummaryrefslogtreecommitdiffstats
path: root/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts')
-rw-r--r--buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts38
1 files changed, 38 insertions, 0 deletions
diff --git a/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts b/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts
new file mode 100644
index 00000000..25e7e573
--- /dev/null
+++ b/buildSrc/src/main/kotlin/tools/refinery/gradle/eclipse.gradle.kts
@@ -0,0 +1,38 @@
1package tools.refinery.gradle
2
3import java.util.Properties
4
5plugins {
6 eclipse
7}
8
9// Workaround from https://github.com/gradle/gradle/issues/898#issuecomment-885765821
10val eclipseResourceEncoding by tasks.registering {
11 val outputFile = file(".settings/org.eclipse.core.resources.prefs")
12 val encoding = providers.systemProperty("file.encoding")
13
14 inputs.property("file.encoding", encoding)
15 outputs.file(outputFile)
16
17 doLast {
18 val eclipseEncodingProperties = Properties(2)
19 eclipseEncodingProperties["eclipse.preferences.version"] = "1"
20 eclipseEncodingProperties["encoding/<project>"] = encoding.get()
21 outputFile.outputStream().use { outputStream ->
22 eclipseEncodingProperties.store(outputStream, "generated by $name")
23 }
24 }
25}
26
27tasks.eclipse {
28 dependsOn(eclipseResourceEncoding)
29}
30
31eclipse.synchronizationTasks(eclipseResourceEncoding)
32
33tasks.register<Delete>("clobberEclipse") {
34 mustRunAfter(tasks.eclipse)
35 delete(".classpath")
36 delete(".project")
37 delete(".settings")
38}