From 2f64000917442c35e7c9916bf8f20b96fb4dd17d Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Thu, 28 Jun 2012 19:38:45 +0400 Subject: [PATCH] repl: -classpath argument --- .../jetbrains/jet/cli/jvm/K2JVMCompiler.java | 18 +++++++++++++++--- .../jet/cli/jvm/repl/ReplFromTerminal.java | 10 ++++++---- .../jet/cli/jvm/repl/ReplInterpreter.java | 3 +++ 3 files changed, 24 insertions(+), 7 deletions(-) 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 f1e265e69b3..72b1544daf8 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/K2JVMCompiler.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.cli.jvm; import com.google.common.base.Splitter; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import com.intellij.openapi.Disposable; import jet.modules.Module; import org.jetbrains.annotations.NotNull; @@ -92,7 +93,7 @@ public class K2JVMCompiler extends CLICompiler classpath = Splitter.on(File.pathSeparatorChar).split(arguments.classpath); - CompileEnvironmentUtil.addToClasspath(configuration.getEnvironment(), Iterables.toArray(classpath, String.class)); + List classpath = getClasspath(arguments); + CompileEnvironmentUtil.addToClasspath(configuration.getEnvironment(), Iterables.toArray(classpath, File.class)); } } + + @NotNull + private static List getClasspath(@NotNull K2JVMCompilerArguments arguments) { + List classpath = Lists.newArrayList(); + if (arguments.classpath != null) { + for (String element : Splitter.on(File.pathSeparatorChar).split(arguments.classpath)) { + classpath.add(new File(element)); + } + } + return classpath; + } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplFromTerminal.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplFromTerminal.java index f3079537c94..4e38f8064aa 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplFromTerminal.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplFromTerminal.java @@ -41,8 +41,10 @@ public class ReplFromTerminal { private final ConsoleReader consoleReader; - public ReplFromTerminal(@NotNull final Disposable disposable, @NotNull final CompilerDependencies compilerDependencies) { - final List extraClasspath = Collections.emptyList(); + public ReplFromTerminal( + @NotNull final Disposable disposable, + @NotNull final CompilerDependencies compilerDependencies, + @NotNull final List extraClasspath) { new Thread("initialize-repl") { @Override public void run() { @@ -193,8 +195,8 @@ public class ReplFromTerminal { return Arrays.asList(command.split(" ")); } - public static void run(@NotNull Disposable disposable, @NotNull CompilerDependencies compilerDependencies) { - new ReplFromTerminal(disposable, compilerDependencies).doRun(); + public static void run(@NotNull Disposable disposable, @NotNull CompilerDependencies compilerDependencies, @NotNull List extraClasspath) { + new ReplFromTerminal(disposable, compilerDependencies, extraClasspath).doRun(); } } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java index cbdda083107..1d6afd99abc 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/repl/ReplInterpreter.java @@ -94,6 +94,9 @@ public class ReplInterpreter { public ReplInterpreter(@NotNull Disposable disposable, @NotNull CompilerDependencies compilerDependencies, @NotNull List extraClasspath) { // TODO: add extraClasspath to jetCoreEnvironment jetCoreEnvironment = new JetCoreEnvironment(disposable, compilerDependencies); + for (File pathElement : extraClasspath) { + jetCoreEnvironment.addToClasspath(pathElement); + } Project project = jetCoreEnvironment.getProject(); trace = new BindingTraceContext(); module = new ModuleDescriptor(Name.special(""));