minor change to allow CompilerPlugins to be registered programatically

This commit is contained in:
James Strachan
2012-03-29 08:48:28 +01:00
parent 5bef29870d
commit 316372f8b5
2 changed files with 25 additions and 0 deletions
@@ -18,11 +18,17 @@
package org.jetbrains.jet.cli;
import com.sampullara.cli.Argument;
import org.jetbrains.jet.compiler.CompilerPlugin;
import java.util.ArrayList;
import java.util.List;
/**
* Command line arguments for the {@link KotlinCompiler}
*/
public class CompilerArguments {
private List<CompilerPlugin> compilerPlugins = new ArrayList<CompilerPlugin>();
@Argument(value = "output", description = "output directory")
public String outputDir;
@@ -150,4 +156,15 @@ public class CompilerArguments {
public void setTags(boolean tags) {
this.tags = tags;
}
public List<CompilerPlugin> getCompilerPlugins() {
return compilerPlugins;
}
/**
* Sets the compiler plugins to be used when working with the {@link KotlinCompiler}
*/
public void setCompilerPlugins(List<CompilerPlugin> compilerPlugins) {
this.compilerPlugins = compilerPlugins;
}
}
@@ -19,10 +19,12 @@ package org.jetbrains.jet.cli;
import com.sampullara.cli.Args;
import org.jetbrains.jet.compiler.CompileEnvironment;
import org.jetbrains.jet.compiler.CompileEnvironmentException;
import org.jetbrains.jet.compiler.CompilerPlugin;
import org.jetbrains.jet.compiler.MessageRenderer;
import org.jetbrains.jet.lang.diagnostics.Severity;
import java.io.PrintStream;
import java.util.List;
import static org.jetbrains.jet.cli.KotlinCompiler.ExitCode.*;
@@ -167,6 +169,12 @@ public class KotlinCompiler {
KDocLoader.install(arguments.docOutputDir, environment.getMyEnvironment());
}
// install any compiler plugins
List<CompilerPlugin> plugins = arguments.getCompilerPlugins();
if (plugins != null) {
environment.getMyEnvironment().getCompilerPlugins().addAll(plugins);
}
if (arguments.stdlib != null) {
environment.setStdlib(arguments.stdlib);
}