|
12 | 12 | import org.gradle.api.DefaultTask; |
13 | 13 | import org.gradle.api.file.ConfigurableFileCollection; |
14 | 14 | import org.gradle.api.file.RegularFileProperty; |
| 15 | +import org.gradle.api.specs.Spec; |
15 | 16 | import org.gradle.api.tasks.Internal; |
16 | 17 | import org.gradle.api.tasks.InputFile; |
17 | 18 | import org.gradle.api.tasks.InputFiles; |
18 | 19 | import org.gradle.api.tasks.OutputFile; |
19 | 20 | import org.gradle.api.tasks.TaskAction; |
20 | 21 | import org.gradle.process.ExecSpec; |
21 | 22 |
|
| 23 | +import groovy.lang.Closure; |
| 24 | + |
22 | 25 | public abstract class ExportsGenerationTask extends DefaultTask implements Action<ExecSpec> { |
23 | 26 |
|
24 | 27 | @InputFiles |
@@ -110,7 +113,16 @@ public void execute() { |
110 | 113 | public void execute(ExecSpec exec) { |
111 | 114 | exec.setExecutable(getDefFileGenerator().get().getAsFile().toString()); |
112 | 115 | exec.args(getDefFile().get().getAsFile().toString()); |
113 | | - exec.args(getSourceFiles()); |
| 116 | + |
| 117 | + Spec<File> objectFilter = getExportsConfig().getObjectFilter().getOrElse(null); |
| 118 | + Closure<?> objectFilterClosure = getExportsConfig().getObjectFilterClosure().getOrElse(null); |
| 119 | + if (objectFilter == null && objectFilterClosure == null) { |
| 120 | + exec.args(getSourceFiles()); |
| 121 | + } else if (objectFilterClosure == null) { |
| 122 | + exec.args(getSourceFiles().filter(objectFilter)); |
| 123 | + } else { |
| 124 | + exec.args(getSourceFiles().filter(objectFilterClosure)); |
| 125 | + } |
114 | 126 | } |
115 | 127 |
|
116 | 128 | } |
0 commit comments