Added support for compiler plugins
This commit is contained in:
parent
b29169213b
commit
132fc7199b
2 changed files with 30 additions and 2 deletions
|
@ -41,6 +41,7 @@ public class CompileKotlinOperation extends AbstractOperation<CompileKotlinOpera
|
||||||
private final Collection<String> compileTestClasspath_ = new ArrayList<>();
|
private final Collection<String> compileTestClasspath_ = new ArrayList<>();
|
||||||
private final Collection<File> mainSourceDirectories_ = new ArrayList<>();
|
private final Collection<File> mainSourceDirectories_ = new ArrayList<>();
|
||||||
private final Collection<File> mainSourceFiles_ = new ArrayList<>();
|
private final Collection<File> mainSourceFiles_ = new ArrayList<>();
|
||||||
|
private final Collection<String> plugins_ = new ArrayList<>();
|
||||||
private final Collection<File> testSourceDirectories_ = new ArrayList<>();
|
private final Collection<File> testSourceDirectories_ = new ArrayList<>();
|
||||||
private final Collection<File> testSourceFiles_ = new ArrayList<>();
|
private final Collection<File> testSourceFiles_ = new ArrayList<>();
|
||||||
private File buildMainDirectory_;
|
private File buildMainDirectory_;
|
||||||
|
@ -269,6 +270,11 @@ public class CompileKotlinOperation extends AbstractOperation<CompileKotlinOpera
|
||||||
args.addAll(compileOptions_.args());
|
args.addAll(compileOptions_.args());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// plugins
|
||||||
|
if (!plugins_.isEmpty()) {
|
||||||
|
plugins_.forEach(p -> args.add("-Xplugin=" + p));
|
||||||
|
}
|
||||||
|
|
||||||
// sources
|
// sources
|
||||||
sources.forEach(f -> args.add(f.getAbsolutePath()));
|
sources.forEach(f -> args.add(f.getAbsolutePath()));
|
||||||
|
|
||||||
|
@ -399,6 +405,28 @@ public class CompileKotlinOperation extends AbstractOperation<CompileKotlinOpera
|
||||||
return mainSourceFiles_;
|
return mainSourceFiles_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides compiler plugins.
|
||||||
|
*
|
||||||
|
* @param plugins one or more plugins
|
||||||
|
* @return this class instance
|
||||||
|
*/
|
||||||
|
public CompileKotlinOperation plugins(String... plugins) {
|
||||||
|
plugins_.addAll(List.of(plugins));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides compiler plugins.
|
||||||
|
*
|
||||||
|
* @param plugins a list of plugins
|
||||||
|
* @return this class instance
|
||||||
|
*/
|
||||||
|
public CompileKotlinOperation plugins(Collection<String> plugins) {
|
||||||
|
plugins_.addAll(plugins);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
// Combine Kotlin sources
|
// Combine Kotlin sources
|
||||||
private Collection<File> sources(Collection<File> files, Collection<File> directories) {
|
private Collection<File> sources(Collection<File> files, Collection<File> directories) {
|
||||||
var sources = new ArrayList<>(files);
|
var sources = new ArrayList<>(files);
|
||||||
|
|
|
@ -496,9 +496,9 @@ public class CompileKotlinOptions {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable verbose logging output which includes details of the compilation process.
|
* Pass an option to a plugin.
|
||||||
*
|
*
|
||||||
* @param id the plugin
|
* @param id the plugin ID
|
||||||
* @param optionName the plugin option name
|
* @param optionName the plugin option name
|
||||||
* @param value the plugin option value
|
* @param value the plugin option value
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue