CLI & JPS: use List instead Set for libraries and decencies.
This commit is contained in:
@@ -33,7 +33,6 @@ import org.jetbrains.jet.cli.common.messages.MessageCollectorUtil;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class KotlinCompilerRunner {
|
public class KotlinCompilerRunner {
|
||||||
private static final String K2JVM_COMPILER = "org.jetbrains.jet.cli.jvm.K2JVMCompiler";
|
private static final String K2JVM_COMPILER = "org.jetbrains.jet.cli.jvm.K2JVMCompiler";
|
||||||
@@ -62,7 +61,7 @@ public class KotlinCompilerRunner {
|
|||||||
CompilerEnvironment environment,
|
CompilerEnvironment environment,
|
||||||
OutputItemsCollector collector,
|
OutputItemsCollector collector,
|
||||||
List<File> sourceFiles,
|
List<File> sourceFiles,
|
||||||
Set<String> libraryFiles,
|
List<String> libraryFiles,
|
||||||
File outputFile
|
File outputFile
|
||||||
) {
|
) {
|
||||||
K2JSCompilerArguments arguments = mergeBeans(commonArguments, k2jsArguments);
|
K2JSCompilerArguments arguments = mergeBeans(commonArguments, k2jsArguments);
|
||||||
@@ -147,7 +146,7 @@ public class KotlinCompilerRunner {
|
|||||||
private static void setupK2JsSettings(
|
private static void setupK2JsSettings(
|
||||||
File outputFile,
|
File outputFile,
|
||||||
List<File> sourceFiles,
|
List<File> sourceFiles,
|
||||||
Set<String> libraryFiles,
|
List<String> libraryFiles,
|
||||||
K2JSCompilerArguments settings
|
K2JSCompilerArguments settings
|
||||||
) {
|
) {
|
||||||
setupCommonSettings(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.model.module.JpsModuleSourceRoot;
|
||||||
import org.jetbrains.jps.util.JpsPathUtil;
|
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;
|
import java.util.Set;
|
||||||
|
|
||||||
class JpsJsModuleUtils {
|
class JpsJsModuleUtils {
|
||||||
private JpsJsModuleUtils() {}
|
private JpsJsModuleUtils() {}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
static Set<String> getLibraryFilesAndDependencies(@NotNull ModuleBuildTarget target) {
|
static List<String> getLibraryFilesAndDependencies(@NotNull ModuleBuildTarget target) {
|
||||||
Set<String> result = new HashSet<String>();
|
List<String> result = new ArrayList<String>();
|
||||||
getLibraryFiles(target, result);
|
getLibraryFiles(target, result);
|
||||||
getDependencyModulesAndSources(target, result);
|
getDependencyModulesAndSources(target, result);
|
||||||
return 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();
|
Set<JpsLibrary> libraries = JpsUtils.getAllDependencies(target).getLibraries();
|
||||||
for (JpsLibrary library : libraries) {
|
for (JpsLibrary library : libraries) {
|
||||||
for (JpsLibraryRoot root : library.getRoots(JpsOrderRootType.COMPILED)) {
|
for (JpsLibraryRoot root : library.getRoots(JpsOrderRootType.COMPILED)) {
|
||||||
String path = JpsPathUtil.urlToOsPath(root.getUrl());
|
String path = JpsPathUtil.urlToOsPath(root.getUrl());
|
||||||
// TODO: Do we need to add to dependency all libraries?
|
// 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);
|
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>() {
|
JpsUtils.getAllDependencies(target).processModules(new Consumer<JpsModule>() {
|
||||||
@Override
|
@Override
|
||||||
public void consume(JpsModule module) {
|
public void consume(JpsModule module) {
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public class KotlinBuilder extends ModuleLevelBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
File outputFile = new File(outputDir, representativeTarget.getModule().getName() + ".js");
|
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);
|
K2JSCompilerArguments k2JsSettings = JpsKotlinCompilerSettings.getK2JsSettings(project);
|
||||||
|
|
||||||
runK2JsCompiler(commonSettings, k2JsSettings, messageCollector, environment, outputItemCollector, sourceFiles, libraryFiles, outputFile);
|
runK2JsCompiler(commonSettings, k2JsSettings, messageCollector, environment, outputItemCollector, sourceFiles, libraryFiles, outputFile);
|
||||||
|
|||||||
Reference in New Issue
Block a user