CLI & JPS: use List instead Set for libraries and decencies.

This commit is contained in:
Zalim Bashorov
2013-10-22 12:51:00 +04:00
parent 22dde719de
commit 4d68262b7f
3 changed files with 11 additions and 10 deletions
@@ -33,7 +33,6 @@ import org.jetbrains.jet.cli.common.messages.MessageCollectorUtil;
import java.io.File;
import java.io.PrintStream;
import java.util.List;
import java.util.Set;
public class KotlinCompilerRunner {
private static final String K2JVM_COMPILER = "org.jetbrains.jet.cli.jvm.K2JVMCompiler";
@@ -62,7 +61,7 @@ public class KotlinCompilerRunner {
CompilerEnvironment environment,
OutputItemsCollector collector,
List<File> sourceFiles,
Set<String> libraryFiles,
List<String> libraryFiles,
File outputFile
) {
K2JSCompilerArguments arguments = mergeBeans(commonArguments, k2jsArguments);
@@ -147,7 +146,7 @@ public class KotlinCompilerRunner {
private static void setupK2JsSettings(
File outputFile,
List<File> sourceFiles,
Set<String> libraryFiles,
List<String> libraryFiles,
K2JSCompilerArguments settings
) {
setupCommonSettings(settings);
@@ -29,34 +29,36 @@ import org.jetbrains.jps.model.module.JpsModule;
import org.jetbrains.jps.model.module.JpsModuleSourceRoot;
import org.jetbrains.jps.util.JpsPathUtil;
import java.util.HashSet;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
class JpsJsModuleUtils {
private JpsJsModuleUtils() {}
@NotNull
static Set<String> getLibraryFilesAndDependencies(@NotNull ModuleBuildTarget target) {
Set<String> result = new HashSet<String>();
static List<String> getLibraryFilesAndDependencies(@NotNull ModuleBuildTarget target) {
List<String> result = new ArrayList<String>();
getLibraryFiles(target, result);
getDependencyModulesAndSources(target, result);
return result;
}
static void getLibraryFiles(@NotNull ModuleBuildTarget target, @NotNull Set<String> result) {
static void getLibraryFiles(@NotNull ModuleBuildTarget target, @NotNull List<String> result) {
Set<JpsLibrary> libraries = JpsUtils.getAllDependencies(target).getLibraries();
for (JpsLibrary library : libraries) {
for (JpsLibraryRoot root : library.getRoots(JpsOrderRootType.COMPILED)) {
String path = JpsPathUtil.urlToOsPath(root.getUrl());
// TODO: Do we need to add to dependency all libraries?
if (LibraryUtils.isJsRuntimeLibrary(JpsPathUtil.urlToFile(path))) {
if (LibraryUtils.isJsRuntimeLibrary(new File(path))) {
result.add(path);
}
}
}
}
static void getDependencyModulesAndSources(@NotNull final ModuleBuildTarget target, @NotNull final Set<String> result) {
static void getDependencyModulesAndSources(@NotNull final ModuleBuildTarget target, @NotNull final List<String> result) {
JpsUtils.getAllDependencies(target).processModules(new Consumer<JpsModule>() {
@Override
public void consume(JpsModule module) {
@@ -138,7 +138,7 @@ public class KotlinBuilder extends ModuleLevelBuilder {
}
File outputFile = new File(outputDir, representativeTarget.getModule().getName() + ".js");
Set<String> libraryFiles = JpsJsModuleUtils.getLibraryFilesAndDependencies(representativeTarget);
List<String> libraryFiles = JpsJsModuleUtils.getLibraryFilesAndDependencies(representativeTarget);
K2JSCompilerArguments k2JsSettings = JpsKotlinCompilerSettings.getK2JsSettings(project);
runK2JsCompiler(commonSettings, k2JsSettings, messageCollector, environment, outputItemCollector, sourceFiles, libraryFiles, outputFile);