Minor, inline some CompileEnvironmentUtil utilities
This commit is contained in:
+17
-42
@@ -38,12 +38,10 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.backend.common.output.OutputFile;
|
import org.jetbrains.kotlin.backend.common.output.OutputFile;
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys;
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys;
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity;
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
||||||
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil;
|
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil;
|
||||||
import org.jetbrains.kotlin.cli.common.modules.ModuleScriptData;
|
import org.jetbrains.kotlin.cli.common.modules.ModuleScriptData;
|
||||||
import org.jetbrains.kotlin.cli.common.modules.ModuleXmlParser;
|
import org.jetbrains.kotlin.cli.common.modules.ModuleXmlParser;
|
||||||
import org.jetbrains.kotlin.cli.common.output.outputUtils.OutputUtilsPackage;
|
|
||||||
import org.jetbrains.kotlin.cli.jvm.JVMConfigurationKeys;
|
import org.jetbrains.kotlin.cli.jvm.JVMConfigurationKeys;
|
||||||
import org.jetbrains.kotlin.codegen.ClassFileFactory;
|
import org.jetbrains.kotlin.codegen.ClassFileFactory;
|
||||||
import org.jetbrains.kotlin.codegen.GeneratedClassLoader;
|
import org.jetbrains.kotlin.codegen.GeneratedClassLoader;
|
||||||
@@ -74,12 +72,6 @@ import static org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.E
|
|||||||
|
|
||||||
public class CompileEnvironmentUtil {
|
public class CompileEnvironmentUtil {
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private static File getRuntimeJarPath() {
|
|
||||||
File runtimePath = PathUtil.getKotlinPathsForCompiler().getRuntimePath();
|
|
||||||
return runtimePath.exists() ? runtimePath : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static ModuleScriptData loadModuleDescriptions(KotlinPaths paths, String moduleDefinitionFile, MessageCollector messageCollector) {
|
public static ModuleScriptData loadModuleDescriptions(KotlinPaths paths, String moduleDefinitionFile, MessageCollector messageCollector) {
|
||||||
File file = new File(moduleDefinitionFile);
|
File file = new File(moduleDefinitionFile);
|
||||||
@@ -219,27 +211,26 @@ public class CompileEnvironmentUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void writeRuntimeToJar(JarOutputStream stream) throws IOException {
|
private static void writeRuntimeToJar(JarOutputStream stream) throws IOException {
|
||||||
File runtimeJarPath = getRuntimeJarPath();
|
File runtimePath = PathUtil.getKotlinPathsForCompiler().getRuntimePath();
|
||||||
if (runtimeJarPath != null) {
|
if (!runtimePath.exists()) {
|
||||||
JarInputStream jis = new JarInputStream(new FileInputStream(runtimeJarPath));
|
throw new CompileEnvironmentException("Couldn't find runtime library");
|
||||||
try {
|
}
|
||||||
while (true) {
|
|
||||||
JarEntry e = jis.getNextJarEntry();
|
JarInputStream jis = new JarInputStream(new FileInputStream(runtimePath));
|
||||||
if (e == null) {
|
try {
|
||||||
break;
|
while (true) {
|
||||||
}
|
JarEntry e = jis.getNextJarEntry();
|
||||||
if (FileUtilRt.extensionEquals(e.getName(), "class")) {
|
if (e == null) {
|
||||||
stream.putNextEntry(e);
|
break;
|
||||||
FileUtil.copy(jis, stream);
|
}
|
||||||
}
|
if (FileUtilRt.extensionEquals(e.getName(), "class")) {
|
||||||
|
stream.putNextEntry(e);
|
||||||
|
FileUtil.copy(jis, stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally {
|
|
||||||
jis.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
finally {
|
||||||
throw new CompileEnvironmentException("Couldn't find runtime library");
|
jis.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,22 +244,6 @@ public class CompileEnvironmentUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void writeOutputToDirOrJar(
|
|
||||||
@Nullable File jar,
|
|
||||||
@Nullable File outputDir,
|
|
||||||
boolean includeRuntime,
|
|
||||||
@Nullable FqName mainClass,
|
|
||||||
@NotNull ClassFileFactory outputFiles,
|
|
||||||
@NotNull MessageCollector messageCollector
|
|
||||||
) {
|
|
||||||
if (jar != null) {
|
|
||||||
writeToJar(jar, includeRuntime, mainClass, outputFiles);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
OutputUtilsPackage.writeAll(outputFiles, outputDir == null ? new File(".") : outputDir, messageCollector);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static List<JetFile> getJetFiles(
|
public static List<JetFile> getJetFiles(
|
||||||
@NotNull final Project project,
|
@NotNull final Project project,
|
||||||
|
|||||||
+8
-2
@@ -37,6 +37,7 @@ import org.jetbrains.kotlin.cli.common.CompilerPlugin;
|
|||||||
import org.jetbrains.kotlin.cli.common.CompilerPluginContext;
|
import org.jetbrains.kotlin.cli.common.CompilerPluginContext;
|
||||||
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport;
|
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport;
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
|
||||||
|
import org.jetbrains.kotlin.cli.common.output.outputUtils.OutputUtilsPackage;
|
||||||
import org.jetbrains.kotlin.cli.jvm.JVMConfigurationKeys;
|
import org.jetbrains.kotlin.cli.jvm.JVMConfigurationKeys;
|
||||||
import org.jetbrains.kotlin.codegen.*;
|
import org.jetbrains.kotlin.codegen.*;
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
import org.jetbrains.kotlin.codegen.state.GenerationState;
|
||||||
@@ -100,8 +101,13 @@ public class KotlinToJVMBytecodeCompiler {
|
|||||||
boolean jarRuntime,
|
boolean jarRuntime,
|
||||||
@Nullable FqName mainClass
|
@Nullable FqName mainClass
|
||||||
) {
|
) {
|
||||||
MessageCollector messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, MessageCollector.NONE);
|
if (jarPath != null) {
|
||||||
CompileEnvironmentUtil.writeOutputToDirOrJar(jarPath, outputDir, jarRuntime, mainClass, outputFiles, messageCollector);
|
CompileEnvironmentUtil.writeToJar(jarPath, jarRuntime, mainClass, outputFiles);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
MessageCollector messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, MessageCollector.NONE);
|
||||||
|
OutputUtilsPackage.writeAll(outputFiles, outputDir == null ? new File(".") : outputDir, messageCollector);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean compileModules(
|
public static boolean compileModules(
|
||||||
|
|||||||
Reference in New Issue
Block a user