KT-3120 The compiler should not depend on the file directory of the libs
#KT-3120 In Progress
This commit is contained in:
@@ -26,6 +26,7 @@ import org.jetbrains.jet.cli.jvm.compiler.*;
|
|||||||
import org.jetbrains.jet.config.CommonConfigurationKeys;
|
import org.jetbrains.jet.config.CommonConfigurationKeys;
|
||||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||||
import org.jetbrains.jet.utils.KotlinPaths;
|
import org.jetbrains.jet.utils.KotlinPaths;
|
||||||
|
import org.jetbrains.jet.utils.KotlinPathsFromHomeDir;
|
||||||
import org.jetbrains.jet.utils.PathUtil;
|
import org.jetbrains.jet.utils.PathUtil;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -199,7 +200,7 @@ public class BytecodeCompiler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static KotlinPaths getKotlinPathsForAntTask() {
|
private static KotlinPaths getKotlinPathsForAntTask() {
|
||||||
return new KotlinPaths(PathUtil.getJarPathForClass(BytecodeCompiler.class).getParentFile().getParentFile());
|
return new KotlinPathsFromHomeDir(PathUtil.getJarPathForClass(BytecodeCompiler.class).getParentFile().getParentFile());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import org.jetbrains.jet.util.slicedmap.ReadOnlySlice;
|
|||||||
import org.jetbrains.jet.util.slicedmap.SlicedMap;
|
import org.jetbrains.jet.util.slicedmap.SlicedMap;
|
||||||
import org.jetbrains.jet.util.slicedmap.WritableSlice;
|
import org.jetbrains.jet.util.slicedmap.WritableSlice;
|
||||||
import org.jetbrains.jet.utils.KotlinPaths;
|
import org.jetbrains.jet.utils.KotlinPaths;
|
||||||
|
import org.jetbrains.jet.utils.KotlinPathsFromHomeDir;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
import javax.tools.*;
|
import javax.tools.*;
|
||||||
@@ -492,7 +493,7 @@ public class JetTestUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static KotlinPaths getPathsForTests() {
|
public static KotlinPaths getPathsForTests() {
|
||||||
return new KotlinPaths(new File("dist/kotlinc"));
|
return new KotlinPathsFromHomeDir(new File("dist/kotlinc"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JetFile loadJetFile(@NotNull Project project, @NotNull File ioFile) throws IOException {
|
public static JetFile loadJetFile(@NotNull Project project, @NotNull File ioFile) throws IOException {
|
||||||
|
|||||||
@@ -20,46 +20,22 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class KotlinPaths {
|
public interface KotlinPaths {
|
||||||
// kotlinc directory
|
@NotNull
|
||||||
private final File homePath;
|
File getHomePath();
|
||||||
|
|
||||||
public KotlinPaths(@NotNull File homePath) {
|
|
||||||
this.homePath = homePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public File getHomePath() {
|
File getLibPath();
|
||||||
return homePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public File getLibPath() {
|
File getRuntimePath();
|
||||||
return new File(homePath, "lib");
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public File getRuntimePath() {
|
File getJdkAnnotationsPath();
|
||||||
return getLibraryFile("kotlin-runtime.jar");
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public File getJdkAnnotationsPath() {
|
File getJsLibJsPath();
|
||||||
return getLibraryFile(PathUtil.JDK_ANNOTATIONS_JAR);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public File getJsLibJsPath() {
|
File getJsLibJarPath();
|
||||||
return getLibraryFile(PathUtil.JS_LIB_JS_NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public File getJsLibJarPath() {
|
|
||||||
return getLibraryFile(PathUtil.JS_LIB_JAR_NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private File getLibraryFile(@NotNull String fileName) {
|
|
||||||
return new File(getLibPath(), fileName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2012 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.utils;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class KotlinPathsFromHomeDir implements KotlinPaths {
|
||||||
|
// kotlinc directory
|
||||||
|
private final File homePath;
|
||||||
|
|
||||||
|
public KotlinPathsFromHomeDir(@NotNull File homePath) {
|
||||||
|
this.homePath = homePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public File getHomePath() {
|
||||||
|
return homePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public File getLibPath() {
|
||||||
|
return new File(homePath, "lib");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public File getRuntimePath() {
|
||||||
|
return getLibraryFile("kotlin-runtime.jar");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public File getJdkAnnotationsPath() {
|
||||||
|
return getLibraryFile(PathUtil.JDK_ANNOTATIONS_JAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public File getJsLibJsPath() {
|
||||||
|
return getLibraryFile(PathUtil.JS_LIB_JS_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public File getJsLibJarPath() {
|
||||||
|
return getLibraryFile(PathUtil.JS_LIB_JAR_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private File getLibraryFile(@NotNull String fileName) {
|
||||||
|
return new File(getLibPath(), fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -39,12 +39,12 @@ public class PathUtil {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KotlinPaths getKotlinPathsForIdeaPlugin() {
|
public static KotlinPaths getKotlinPathsForIdeaPlugin() {
|
||||||
return new KotlinPaths(getCompilerPathForIdeaPlugin());
|
return new KotlinPathsFromHomeDir(getCompilerPathForIdeaPlugin());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KotlinPaths getKotlinPathsForJpsPlugin() {
|
public static KotlinPaths getKotlinPathsForJpsPlugin() {
|
||||||
return new KotlinPaths(getCompilerPathForJpsPlugin());
|
return new KotlinPathsFromHomeDir(getCompilerPathForJpsPlugin());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -61,12 +61,12 @@ public class PathUtil {
|
|||||||
// Not running from a jar, i.e. it is it must be a unit test
|
// Not running from a jar, i.e. it is it must be a unit test
|
||||||
return getKotlinPathsForDistDirectory();
|
return getKotlinPathsForDistDirectory();
|
||||||
}
|
}
|
||||||
return new KotlinPaths(getCompilerPathForCompilerJar());
|
return new KotlinPathsFromHomeDir(getCompilerPathForCompilerJar());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static KotlinPaths getKotlinPathsForDistDirectory() {
|
public static KotlinPaths getKotlinPathsForDistDirectory() {
|
||||||
return new KotlinPaths(new File("dist/kotlinc"));
|
return new KotlinPathsFromHomeDir(new File("dist/kotlinc"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
Reference in New Issue
Block a user