JS: always generate metadata while compiling from idea

Original commit: 977b743f3d
This commit is contained in:
Michael Nedzelsky
2015-03-18 16:58:36 +03:00
parent d56cbffbe0
commit 9e6afeda99
2 changed files with 25 additions and 16 deletions
@@ -64,18 +64,19 @@ public class KotlinCompilerRunner {
} }
public static void runK2JsCompiler( public static void runK2JsCompiler(
CommonCompilerArguments commonArguments, @NotNull CommonCompilerArguments commonArguments,
K2JSCompilerArguments k2jsArguments, @NotNull K2JSCompilerArguments k2jsArguments,
CompilerSettings compilerSettings, @NotNull CompilerSettings compilerSettings,
MessageCollector messageCollector, @NotNull MessageCollector messageCollector,
CompilerEnvironment environment, @NotNull CompilerEnvironment environment,
OutputItemsCollector collector, @NotNull OutputItemsCollector collector,
Collection<File> sourceFiles, @NotNull Collection<File> sourceFiles,
List<String> libraryFiles, @NotNull List<String> libraryFiles,
File outputFile @NotNull File outputFile,
@Nullable File metaInfoFile
) { ) {
K2JSCompilerArguments arguments = mergeBeans(commonArguments, k2jsArguments); K2JSCompilerArguments arguments = mergeBeans(commonArguments, k2jsArguments);
setupK2JsArguments(outputFile, sourceFiles, libraryFiles, arguments); setupK2JsArguments(outputFile, metaInfoFile, sourceFiles, libraryFiles, arguments);
runCompiler(K2JS_COMPILER, arguments, compilerSettings.getAdditionalArguments(), messageCollector, collector, environment); runCompiler(K2JS_COMPILER, arguments, compilerSettings.getAdditionalArguments(), messageCollector, collector, environment);
} }
@@ -189,10 +190,11 @@ public class KotlinCompilerRunner {
} }
private static void setupK2JsArguments( private static void setupK2JsArguments(
File outputFile, @NotNull File outputFile,
Collection<File> sourceFiles, @Nullable File metaInfoFile,
List<String> libraryFiles, @NotNull Collection<File> sourceFiles,
K2JSCompilerArguments settings @NotNull List<String> libraryFiles,
@NotNull K2JSCompilerArguments settings
) { ) {
settings.noStdlib = true; settings.noStdlib = true;
settings.freeArgs = ContainerUtil.map(sourceFiles, new Function<File, String>() { settings.freeArgs = ContainerUtil.map(sourceFiles, new Function<File, String>() {
@@ -202,6 +204,11 @@ public class KotlinCompilerRunner {
} }
}); });
settings.outputFile = outputFile.getPath(); settings.outputFile = outputFile.getPath();
if (metaInfoFile != null) {
settings.metaInfo = metaInfoFile.getPath();
}
settings.libraryFiles = ArrayUtil.toStringArray(libraryFiles); settings.libraryFiles = ArrayUtil.toStringArray(libraryFiles);
} }
} }
@@ -382,12 +382,14 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
val outputDir = KotlinBuilderModuleScriptGenerator.getOutputDirSafe(representativeTarget) val outputDir = KotlinBuilderModuleScriptGenerator.getOutputDirSafe(representativeTarget)
val outputFile = File(outputDir, representativeTarget.getModule().getName() + ".js") val moduleName = representativeTarget.getModule().getName()
val outputFile = File(outputDir, "$moduleName.js")
val metaInfoFile = File(outputDir, "$moduleName.meta.js")
val libraryFiles = JpsJsModuleUtils.getLibraryFilesAndDependencies(representativeTarget) val libraryFiles = JpsJsModuleUtils.getLibraryFilesAndDependencies(representativeTarget)
val compilerSettings = JpsKotlinCompilerSettings.getCompilerSettings(project) val compilerSettings = JpsKotlinCompilerSettings.getCompilerSettings(project)
val k2JsArguments = JpsKotlinCompilerSettings.getK2JsCompilerArguments(project) val k2JsArguments = JpsKotlinCompilerSettings.getK2JsCompilerArguments(project)
runK2JsCompiler(commonArguments, k2JsArguments, compilerSettings, messageCollector, environment, outputItemCollector, sourceFiles, libraryFiles, outputFile) runK2JsCompiler(commonArguments, k2JsArguments, compilerSettings, messageCollector, environment, outputItemCollector, sourceFiles, libraryFiles, outputFile, metaInfoFile)
return outputItemCollector return outputItemCollector
} }