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.*
10
9
import org.gradle.api.tasks.Optional
10
+ import java.io.File
11
11
import java.util.*
12
12
import javax.inject.Inject
13
13
14
14
@CacheableTask
15
15
abstract class GenerateAntScriptForMpsMetaModelExport @Inject constructor(of : ObjectFactory ) : DefaultTask() {
16
- @get:InputDirectory
17
- @PathSensitive(PathSensitivity .RELATIVE )
18
- val mpsHome: DirectoryProperty = of.directoryProperty()
16
+ @Input
17
+ val mpsHome: Property <String > = of.property(String ::class .java)
19
18
20
19
@get:OutputFile
21
20
val antScriptFile: RegularFileProperty = of.fileProperty()
22
21
23
- @InputDirectory
24
- @PathSensitive(PathSensitivity .RELATIVE )
22
+ @Input
25
23
val exporterDir: Property <String > = of.property(String ::class .java)
26
24
27
- @InputFiles
28
- @PathSensitive(PathSensitivity .RELATIVE )
25
+ @Input
29
26
val moduleFolders: ListProperty <String > = of.listProperty(String ::class .java)
30
27
31
28
@Input
@@ -75,7 +72,7 @@ abstract class GenerateAntScriptForMpsMetaModelExport @Inject constructor(of: Ob
75
72
<taskdef resource="jetbrains/mps/build/ant/antlib.xml" classpathref="path.mps.ant.path" />
76
73
</target>
77
74
78
- <target name="export-languages" depends="declare-mps-tasks">
75
+ <target name="export-languages" depends="clean, declare-mps-tasks">
79
76
<echo message="Running export of languages" />
80
77
<runMPS solution="e52a4421-48a2-4de1-8327-d9414e799c67(org.modelix.metamodel.export)" startClass="org.modelix.metamodel.export.CommandlineExporter" startMethod="${if (exportModulesFilter.isPresent) " exportBoth" else " exportLanguages" } ">
81
78
<library file="${getMpsLanguagesDir().absolutePath} " />
@@ -101,8 +98,8 @@ abstract class GenerateAntScriptForMpsMetaModelExport @Inject constructor(of: Ob
101
98
""" .trimIndent())
102
99
}
103
100
104
- private fun getMpsBuildPropertiesFile () = mpsHome.get().asFile .resolve(" build.properties" )
105
- private fun getMpsLanguagesDir () = mpsHome.get().asFile .resolve(" languages" )
101
+ private fun getMpsBuildPropertiesFile () = File ( mpsHome.get()) .resolve(" build.properties" )
102
+ private fun getMpsLanguagesDir () = File ( mpsHome.get()) .resolve(" languages" )
106
103
107
104
private fun getMpsVersion (): String {
108
105
val buildPropertiesFile = getMpsBuildPropertiesFile()
0 commit comments