update kotlin javascript stdlib if needed

This commit is contained in:
Michael Nedzelsky
2014-10-24 15:45:08 +04:00
parent 85a38e17de
commit 103307432e
16 changed files with 92 additions and 38 deletions
@@ -21,6 +21,7 @@ import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.utils.LibraryUtils;
import org.jetbrains.jet.utils.PathUtil;
import java.util.List;
@@ -38,16 +39,6 @@ public class JavaRuntimeDetectionUtil {
@Nullable
public static VirtualFile getRuntimeJar(@NotNull List<VirtualFile> classesRoots) {
return getJarFile(classesRoots, PathUtil.KOTLIN_JAVA_RUNTIME_JAR);
}
static VirtualFile getJarFile(@NotNull List<VirtualFile> classesRoots, @NotNull String jarName) {
for (VirtualFile root : classesRoots) {
if (root.getName().equals(jarName)) {
return root;
}
}
return null;
return LibraryUtils.getJarFile(classesRoots, PathUtil.KOTLIN_JAVA_RUNTIME_JAR);
}
}
@@ -21,6 +21,7 @@ import com.intellij.openapi.vfs.StandardFileSystems;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.utils.LibraryUtils;
import java.io.File;
@@ -34,6 +35,16 @@ public class JsLibraryStdDetectionUtil {
return null;
}
VirtualFile jar = getJsStdLibJar(classesRoots);
if (jar == null) return null;
assert JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) : "StdLib should also be detected as headers library";
return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(jar), Attributes.Name.IMPLEMENTATION_VERSION);
}
@Nullable
public static VirtualFile getJsStdLibJar(@NotNull List<VirtualFile> classesRoots) {
for (VirtualFile root : classesRoots) {
if (root.getFileSystem().getProtocol() != StandardFileSystems.JAR_PROTOCOL) continue;
@@ -41,13 +52,10 @@ public class JsLibraryStdDetectionUtil {
assert jar != null;
if (LibraryUtils.isKotlinJavascriptStdLibrary(new File(jar.getPath()))) {
assert JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) : "StdLib should also be detected as headers library";
return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(root), Attributes.Name.IMPLEMENTATION_VERSION);
return jar;
}
}
return null;
}
}