|
1 | 1 | package org.modelix.metamodel.gradle
|
2 | 2 |
|
3 | 3 | import org.gradle.api.DefaultTask
|
4 |
| -import org.gradle.api.file.DirectoryProperty |
5 | 4 | import org.gradle.api.file.RegularFileProperty
|
6 | 5 | import org.gradle.api.model.ObjectFactory
|
7 | 6 | import org.gradle.api.provider.ListProperty
|
8 | 7 | import org.gradle.api.provider.Property
|
9 | 8 | import org.gradle.api.tasks.CacheableTask
|
10 | 9 | import org.gradle.api.tasks.Input
|
11 |
| -import org.gradle.api.tasks.InputDirectory |
12 |
| -import org.gradle.api.tasks.InputFiles |
13 | 10 | import org.gradle.api.tasks.Optional
|
14 | 11 | import org.gradle.api.tasks.OutputFile
|
15 |
| -import org.gradle.api.tasks.PathSensitive |
16 |
| -import org.gradle.api.tasks.PathSensitivity |
17 | 12 | import org.gradle.api.tasks.TaskAction
|
| 13 | +import java.io.File |
| 14 | +import java.util.* |
18 | 15 | import java.util.Properties
|
19 | 16 | import javax.inject.Inject
|
20 | 17 |
|
21 | 18 | @CacheableTask
|
22 | 19 | abstract class GenerateAntScriptForMpsMetaModelExport @Inject constructor(of: ObjectFactory) : DefaultTask() {
|
23 |
| - @get:InputDirectory |
24 |
| - @PathSensitive(PathSensitivity.RELATIVE) |
25 |
| - val mpsHome: DirectoryProperty = of.directoryProperty() |
| 20 | + @Input |
| 21 | + val mpsHome: Property<String> = of.property(String::class.java) |
26 | 22 |
|
27 | 23 | @get:OutputFile
|
28 | 24 | val antScriptFile: RegularFileProperty = of.fileProperty()
|
29 | 25 |
|
30 |
| - @InputDirectory |
31 |
| - @PathSensitive(PathSensitivity.RELATIVE) |
| 26 | + @Input |
32 | 27 | val exporterDir: Property<String> = of.property(String::class.java)
|
33 | 28 |
|
34 |
| - @InputFiles |
35 |
| - @PathSensitive(PathSensitivity.RELATIVE) |
| 29 | + @Input |
36 | 30 | val moduleFolders: ListProperty<String> = of.listProperty(String::class.java)
|
37 | 31 |
|
38 | 32 | @Input
|
@@ -83,7 +77,7 @@ abstract class GenerateAntScriptForMpsMetaModelExport @Inject constructor(of: Ob
|
83 | 77 | <taskdef resource="jetbrains/mps/build/ant/antlib.xml" classpathref="path.mps.ant.path" />
|
84 | 78 | </target>
|
85 | 79 |
|
86 |
| - <target name="export-languages" depends="declare-mps-tasks"> |
| 80 | + <target name="export-languages" depends="clean,declare-mps-tasks"> |
87 | 81 | <echo message="Running export of languages" />
|
88 | 82 | <runMPS solution="e52a4421-48a2-4de1-8327-d9414e799c67(org.modelix.metamodel.export)" startClass="org.modelix.metamodel.export.CommandlineExporter" startMethod="${if (exportModulesFilter.isPresent) "exportBoth" else "exportLanguages"}">
|
89 | 83 | <library file="${getMpsLanguagesDir().absolutePath}" />
|
@@ -112,8 +106,8 @@ abstract class GenerateAntScriptForMpsMetaModelExport @Inject constructor(of: Ob
|
112 | 106 | )
|
113 | 107 | }
|
114 | 108 |
|
115 |
| - private fun getMpsBuildPropertiesFile() = mpsHome.get().asFile.resolve("build.properties") |
116 |
| - private fun getMpsLanguagesDir() = mpsHome.get().asFile.resolve("languages") |
| 109 | + private fun getMpsBuildPropertiesFile() = File(mpsHome.get()).resolve("build.properties") |
| 110 | + private fun getMpsLanguagesDir() = File(mpsHome.get()).resolve("languages") |
117 | 111 |
|
118 | 112 | private fun getMpsVersion(): String {
|
119 | 113 | val buildPropertiesFile = getMpsBuildPropertiesFile()
|
|
0 commit comments