From e3cb79ce2e0f7b6ae842d67b3bf89afa1f637473 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 5 Feb 2013 20:30:32 +0400 Subject: [PATCH] "--kotlinHome" command-line option --- .../src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java | 10 +++++++++- .../jetbrains/jet/cli/jvm/K2JVMCompilerArguments.java | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java index 4b989bd2bbf..2cf1c40ff46 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java @@ -26,6 +26,7 @@ import org.jetbrains.jet.cli.common.CLICompiler; import org.jetbrains.jet.cli.common.CLIConfigurationKeys; import org.jetbrains.jet.cli.common.ExitCode; import org.jetbrains.jet.cli.common.messages.*; +import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity; import org.jetbrains.jet.cli.jvm.compiler.CommandLineScriptUtils; import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; @@ -37,6 +38,7 @@ import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; import org.jetbrains.jet.utils.KotlinPaths; +import org.jetbrains.jet.utils.KotlinPathsFromHomeDir; import org.jetbrains.jet.utils.PathUtil; import java.io.File; @@ -57,7 +59,13 @@ public class K2JVMCompiler extends CLICompiler { @Override @NotNull protected ExitCode doExecute(K2JVMCompilerArguments arguments, PrintingMessageCollector messageCollector, Disposable rootDisposable) { - KotlinPaths paths = PathUtil.getKotlinPathsForCompiler(); + KotlinPaths paths = arguments.kotlinHome != null + ? new KotlinPathsFromHomeDir(new File(arguments.kotlinHome)) + : PathUtil.getKotlinPathsForCompiler(); + + messageCollector.report(CompilerMessageSeverity.LOGGING, + "Using Kotlin home directory " + paths.getHomePath(), CompilerMessageLocation.NO_LOCATION); + CompilerConfiguration configuration = new CompilerConfiguration(); configuration.addAll(JVMConfigurationKeys.CLASSPATH_KEY, getClasspath(paths, arguments)); configuration.addAll(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, getAnnotationsPath(paths, arguments)); diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompilerArguments.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompilerArguments.java index adbe38d3005..964dfa5ee29 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompilerArguments.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompilerArguments.java @@ -94,6 +94,17 @@ public class K2JVMCompilerArguments extends CompilerArguments { @Argument(value = "help", alias = "h", description = "show help") public boolean help; + @Argument(value = "kotlinHome", description = "Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery") + public String kotlinHome; + + public String getKotlinHome() { + return kotlinHome; + } + + public void setKotlinHome(String kotlinHome) { + this.kotlinHome = kotlinHome; + } + public String getClasspath() { return classpath; }