From 977b743f3d36eee5149d5ce13ebc51761607e3c8 Mon Sep 17 00:00:00 2001 From: Michael Nedzelsky Date: Wed, 18 Mar 2015 16:58:36 +0300 Subject: [PATCH] JS: always generate metadata while compiling from idea --- .../compilerRunner/KotlinCompilerRunner.java | 35 +++++++++++-------- .../kotlin/jps/build/KotlinBuilder.kt | 6 ++-- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java index 27645cf91e1..ea95389879c 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java +++ b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.java @@ -64,18 +64,19 @@ public class KotlinCompilerRunner { } public static void runK2JsCompiler( - CommonCompilerArguments commonArguments, - K2JSCompilerArguments k2jsArguments, - CompilerSettings compilerSettings, - MessageCollector messageCollector, - CompilerEnvironment environment, - OutputItemsCollector collector, - Collection sourceFiles, - List libraryFiles, - File outputFile + @NotNull CommonCompilerArguments commonArguments, + @NotNull K2JSCompilerArguments k2jsArguments, + @NotNull CompilerSettings compilerSettings, + @NotNull MessageCollector messageCollector, + @NotNull CompilerEnvironment environment, + @NotNull OutputItemsCollector collector, + @NotNull Collection sourceFiles, + @NotNull List libraryFiles, + @NotNull File outputFile, + @Nullable File metaInfoFile ) { 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); } @@ -189,10 +190,11 @@ public class KotlinCompilerRunner { } private static void setupK2JsArguments( - File outputFile, - Collection sourceFiles, - List libraryFiles, - K2JSCompilerArguments settings + @NotNull File outputFile, + @Nullable File metaInfoFile, + @NotNull Collection sourceFiles, + @NotNull List libraryFiles, + @NotNull K2JSCompilerArguments settings ) { settings.noStdlib = true; settings.freeArgs = ContainerUtil.map(sourceFiles, new Function() { @@ -202,6 +204,11 @@ public class KotlinCompilerRunner { } }); settings.outputFile = outputFile.getPath(); + + if (metaInfoFile != null) { + settings.metaInfo = metaInfoFile.getPath(); + } + settings.libraryFiles = ArrayUtil.toStringArray(libraryFiles); } } diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 6266658a7fa..a0ea2f9afb3 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -382,12 +382,14 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR 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 compilerSettings = JpsKotlinCompilerSettings.getCompilerSettings(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 }