From f6244f75eab6b3811651755eb83be82517f101a1 Mon Sep 17 00:00:00 2001 From: James Strachan Date: Wed, 7 Mar 2012 07:36:18 +0000 Subject: [PATCH] minor refactoring to allow plugins to be added to the BytecodeCompiler --- .../jet/buildtools/core/BytecodeCompiler.java | 16 ++++++++++++++++ .../src/org/jetbrains/jet/cli/KDocLoader.java | 14 ++++++++++++++ .../org/jetbrains/jet/cli/KotlinCompiler.java | 6 +----- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java index 7320ba558a7..90249d8ca68 100644 --- a/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java +++ b/build-tools/core/src/org/jetbrains/jet/buildtools/core/BytecodeCompiler.java @@ -18,6 +18,10 @@ package org.jetbrains.jet.buildtools.core; import org.jetbrains.jet.compiler.CompileEnvironment; import org.jetbrains.jet.compiler.CompileEnvironmentException; +import org.jetbrains.jet.compiler.CompilerPlugin; + +import java.util.ArrayList; +import java.util.List; /** @@ -25,6 +29,7 @@ import org.jetbrains.jet.compiler.CompileEnvironmentException; */ public class BytecodeCompiler { + private List compilerPlugins = new ArrayList(); public BytecodeCompiler () { } @@ -49,6 +54,9 @@ public class BytecodeCompiler { env.addToClasspath( classpath ); } + // lets register any compiler plugins + env.getMyEnvironment().getCompilerPlugins().addAll(getCompilerPlugins()); + return env; } @@ -108,4 +116,12 @@ public class BytecodeCompiler { public void moduleToJar ( String module, String jar, boolean includeRuntime, String stdlib, String[] classpath ) { env( stdlib, classpath ).compileModuleScript( module, jar, null, includeRuntime ); } + + public List getCompilerPlugins() { + return compilerPlugins; + } + + public void setCompilerPlugins(List compilerPlugins) { + this.compilerPlugins = compilerPlugins; + } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/KDocLoader.java b/compiler/cli/src/org/jetbrains/jet/cli/KDocLoader.java index 8bdd0012368..c1850b27448 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/KDocLoader.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/KDocLoader.java @@ -83,4 +83,18 @@ public class KDocLoader { } } } + + /** + * Installs the KDoc compiler plugin if it can be created + */ + public static boolean install(String docOutputDir, JetCoreEnvironment environment) { + KDocLoader loader = new KDocLoader(docOutputDir); + CompilerPlugin processor = loader.createCompilerPlugin(); + if (processor != null) { + environment.getCompilerPlugins().add(processor); + return true; + } else { + return false; + } + } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java index 8237a99cffa..76b28a2e74b 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java @@ -132,11 +132,7 @@ public class KotlinCompiler { environment.setStubs(arguments.stubs); if (arguments.docOutputDir != null) { - KDocLoader factory = new KDocLoader(arguments.docOutputDir); - CompilerPlugin processor = factory.createCompilerPlugin(); - if (processor != null) { - environment.getMyEnvironment().getCompilerPlugins().add(processor); - } + KDocLoader.install(arguments.docOutputDir, environment.getMyEnvironment()); } if (arguments.stdlib != null) {