From 316372f8b52a9122ac4ee89111ea9d2c6c83282e Mon Sep 17 00:00:00 2001 From: James Strachan Date: Thu, 29 Mar 2012 08:48:28 +0100 Subject: [PATCH] minor change to allow CompilerPlugins to be registered programatically --- .../jetbrains/jet/cli/CompilerArguments.java | 17 +++++++++++++++++ .../org/jetbrains/jet/cli/KotlinCompiler.java | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/CompilerArguments.java b/compiler/cli/src/org/jetbrains/jet/cli/CompilerArguments.java index 01aa2064306..1b2e31f153c 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/CompilerArguments.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/CompilerArguments.java @@ -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 compilerPlugins = new ArrayList(); + @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 getCompilerPlugins() { + return compilerPlugins; + } + + /** + * Sets the compiler plugins to be used when working with the {@link KotlinCompiler} + */ + public void setCompilerPlugins(List compilerPlugins) { + this.compilerPlugins = compilerPlugins; + } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java index add010a525d..c7ea21b4323 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java @@ -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 plugins = arguments.getCompilerPlugins(); + if (plugins != null) { + environment.getMyEnvironment().getCompilerPlugins().addAll(plugins); + } + if (arguments.stdlib != null) { environment.setStdlib(arguments.stdlib); }