Minor: fix compilation in IDEA

This commit is contained in:
Zalim Bashorov
2014-03-18 23:31:45 +04:00
parent 8f6b12d296
commit eec4bc7e04
3 changed files with 13 additions and 7 deletions
+1
View File
@@ -31,6 +31,7 @@
<element id="module-output" name="eval4j" /> <element id="module-output" name="eval4j" />
<element id="module-output" name="idea-analysis" /> <element id="module-output" name="idea-analysis" />
<element id="module-output" name="ide-lazy-resolve" /> <element id="module-output" name="ide-lazy-resolve" />
<element id="file-copy" path="$PROJECT_DIR$/resources/manifest.properties" />
</element> </element>
<element id="library" level="project" name="javax.inject" /> <element id="library" level="project" name="javax.inject" />
<element id="directory" name="jps"> <element id="directory" name="jps">
+1
View File
@@ -335,6 +335,7 @@
</fileset> </fileset>
<fileset dir="${basedir}/compiler/frontend.java/src" includes="META-INF/services/**"/> <fileset dir="${basedir}/compiler/frontend.java/src" includes="META-INF/services/**"/>
<fileset dir="${basedir}/compiler/backend/src" includes="META-INF/services/**"/> <fileset dir="${basedir}/compiler/backend/src" includes="META-INF/services/**"/>
<fileset dir="${basedir}/resources" includes="manifest.properties"/>
<zipgroupfileset dir="${basedir}/lib" includes="*.jar"/> <zipgroupfileset dir="${basedir}/lib" includes="*.jar"/>
<zipgroupfileset dir="${basedir}/ideaSDK/core" includes="*.jar" excludes="util.jar"/> <zipgroupfileset dir="${basedir}/ideaSDK/core" includes="*.jar" excludes="util.jar"/>
@@ -28,6 +28,7 @@ import com.intellij.psi.PsiManager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
@@ -38,6 +39,7 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
import static org.jetbrains.jet.lang.psi.PsiPackage.JetPsiFactory; import static org.jetbrains.jet.lang.psi.PsiPackage.JetPsiFactory;
import static org.jetbrains.jet.utils.LibraryUtils.isJsRuntimeLibrary;
public class LibrarySourcesConfig extends Config { public class LibrarySourcesConfig extends Config {
@NotNull @NotNull
@@ -80,8 +82,10 @@ public class LibrarySourcesConfig extends Config {
moduleName = path.substring(1); moduleName = path.substring(1);
} }
else if (path.endsWith(".jar") || path.endsWith(".zip")) { else if (path.endsWith(".jar") || path.endsWith(".zip")) {
String actualModuleName = isJsRuntimeLibrary(new File(path)) ? "kotlin_lib_compiled" : moduleName;
try { try {
jetFiles.addAll(readZip(path)); jetFiles.addAll(readZip(path, actualModuleName));
} }
catch (IOException e) { catch (IOException e) {
LOG.error(e); LOG.error(e);
@@ -105,10 +109,10 @@ public class LibrarySourcesConfig extends Config {
return jetFiles; return jetFiles;
} }
private List<JetFile> readZip(String file) throws IOException { private List<JetFile> readZip(String file, String moduleName) throws IOException {
ZipFile zipFile = new ZipFile(file); ZipFile zipFile = new ZipFile(file);
try { try {
return traverseArchive(zipFile); return traverseArchive(zipFile, moduleName);
} }
finally { finally {
zipFile.close(); zipFile.close();
@@ -116,16 +120,16 @@ public class LibrarySourcesConfig extends Config {
} }
@NotNull @NotNull
private List<JetFile> traverseArchive(@NotNull ZipFile file) throws IOException { private List<JetFile> traverseArchive(@NotNull ZipFile zipFile, String moduleName) throws IOException {
List<JetFile> result = Lists.newArrayList(); List<JetFile> result = Lists.newArrayList();
Enumeration<? extends ZipEntry> zipEntries = file.entries(); Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
while (zipEntries.hasMoreElements()) { while (zipEntries.hasMoreElements()) {
ZipEntry entry = zipEntries.nextElement(); ZipEntry entry = zipEntries.nextElement();
if (!entry.isDirectory() && entry.getName().endsWith(".kt")) { if (!entry.isDirectory() && entry.getName().endsWith(".kt")) {
InputStream stream = file.getInputStream(entry); InputStream stream = zipFile.getInputStream(entry);
String text = StringUtil.convertLineSeparators(FileUtil.loadTextAndClose(stream)); String text = StringUtil.convertLineSeparators(FileUtil.loadTextAndClose(stream));
JetFile jetFile = JetPsiFactory(getProject()).createFile(entry.getName(), text); JetFile jetFile = JetPsiFactory(getProject()).createFile(entry.getName(), text);
jetFile.putUserData(EXTERNAL_MODULE_NAME, UNKNOWN_EXTERNAL_MODULE_NAME); jetFile.putUserData(EXTERNAL_MODULE_NAME, moduleName);
result.add(jetFile); result.add(jetFile);
} }
} }