diff options
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.kts | 38 |
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 @@ | |||
1 | package tools.refinery.gradle | ||
2 | |||
3 | import java.util.Properties | ||
4 | |||
5 | plugins { | ||
6 | eclipse | ||
7 | } | ||
8 | |||
9 | // Workaround from https://github.com/gradle/gradle/issues/898#issuecomment-885765821 | ||
10 | val 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 | |||
27 | tasks.eclipse { | ||
28 | dependsOn(eclipseResourceEncoding) | ||
29 | } | ||
30 | |||
31 | eclipse.synchronizationTasks(eclipseResourceEncoding) | ||
32 | |||
33 | tasks.register<Delete>("clobberEclipse") { | ||
34 | mustRunAfter(tasks.eclipse) | ||
35 | delete(".classpath") | ||
36 | delete(".project") | ||
37 | delete(".settings") | ||
38 | } | ||