JS: always generate metadata while compiling from idea

This commit is contained in:
Michael Nedzelsky
2015-03-18 16:58:36 +03:00
parent ed62e4972f
commit 977b743f3d
2 changed files with 25 additions and 16 deletions
@@ -64,18 +64,19 @@ public class KotlinCompilerRunner {
}
public static void runK2JsCompiler(
CommonCompilerArguments commonArguments,
K2JSCompilerArguments k2jsArguments,
CompilerSettings compilerSettings,
MessageCollector messageCollector,
CompilerEnvironment environment,
OutputItemsCollector collector,
Collection<File> sourceFiles,
List<String> libraryFiles,
File outputFile
@NotNull CommonCompilerArguments commonArguments,
@NotNull K2JSCompilerArguments k2jsArguments,
@NotNull CompilerSettings compilerSettings,
@NotNull MessageCollector messageCollector,
@NotNull CompilerEnvironment environment,
@NotNull OutputItemsCollector collector,
@NotNull Collection<File> sourceFiles,
@NotNull List<String> 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<File> sourceFiles,
List<String> libraryFiles,
K2JSCompilerArguments settings
@NotNull File outputFile,
@Nullable File metaInfoFile,
@NotNull Collection<File> sourceFiles,
@NotNull List<String> libraryFiles,
@NotNull K2JSCompilerArguments settings
) {
settings.noStdlib = true;
settings.freeArgs = ContainerUtil.map(sourceFiles, new Function<File, String>() {
@@ -202,6 +204,11 @@ public class KotlinCompilerRunner {
}
});
settings.outputFile = outputFile.getPath();
if (metaInfoFile != null) {
settings.metaInfo = metaInfoFile.getPath();
}
settings.libraryFiles = ArrayUtil.toStringArray(libraryFiles);
}
}
@@ -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
}