# HG changeset patch # User Mike Becker # Date 1695413314 -7200 # Node ID d1e78c98a250ca191a229b800d00a7ab99afd1dd # Parent b8d06f7b617c9498134176fa8ee2d673d9eeaa91 simplify code which computes the required languages diff -r b8d06f7b617c -r d1e78c98a250 src/main/java/de/unixwork/uwproj/Project.java --- a/src/main/java/de/unixwork/uwproj/Project.java Thu Sep 21 18:24:37 2023 +0200 +++ b/src/main/java/de/unixwork/uwproj/Project.java Fri Sep 22 22:08:34 2023 +0200 @@ -6,10 +6,9 @@ import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Optional; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; public class Project { private final HashMap> namedDependencies = new HashMap<>(); @@ -21,7 +20,7 @@ private final HashMap configVars = new HashMap<>(); private final List configVarsList = new LinkedList<>(); - private final List langList = new LinkedList<>(); + private final Set lang; public Project(File file) throws Exception { var root = DocumentBuilderFactory. @@ -60,22 +59,10 @@ } // create a list of all languages that are used - for (Dependency d : dependencies) { - for (String lang : d.getLang()) { - if(!langList.contains(lang)) { - langList.add(lang); - } - } - } - for (var nd : namedDependencies.entrySet()) { - for (var d : nd.getValue()) { - for (String lang : d.getLang()) { - if(!langList.contains(lang)) { - langList.add(lang); - } - } - } - } + lang = Stream.concat( + namedDependencies.values().stream().flatMap(Collection::stream), + dependencies.stream() + ).flatMap(d -> d.getLang().stream()).collect(Collectors.toSet()); } private void createDefaultTarget() { @@ -139,7 +126,7 @@ return configVarsList; } - public List getLang() { - return langList; + public Collection getLang() { + return lang; } } diff -r b8d06f7b617c -r d1e78c98a250 src/test/resources/golden-sample/configure --- a/src/test/resources/golden-sample/configure Thu Sep 21 18:24:37 2023 +0200 +++ b/src/test/resources/golden-sample/configure Fri Sep 22 22:08:34 2023 +0200 @@ -199,12 +199,12 @@ # check languages lang_c= lang_cpp= +if detect_cpp_compiler ; then + lang_cpp=1 +fi if detect_c_compiler ; then lang_c=1 fi -if detect_cpp_compiler ; then - lang_cpp=1 -fi # create buffer for make variables required by dependencies echo > "$TEMP_DIR/make.mk"