Tue, 30 Jan 2024 21:32:11 +0100
remove unnecessary double-quotes in vars.mk - fixes #370
package de.unixwork.uwproj; import org.w3c.dom.Element; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; public final class Dependency { private final String id; private final String name; private final String platform; private final String toolchain; private final String not; private final List<ConfigVar> flags = new LinkedList<>(); private final List<PkgConfigPackage> pkgconfig = new LinkedList<>(); private final List<String> tests = new LinkedList<>(); private final List<String> make = new LinkedList<>(); private final List<String> lang = new LinkedList<>(); public Dependency(Element element) { name = element.getAttribute("name"); id = Util.shId(name); platform = element.getAttribute("platform"); toolchain = element.getAttribute("toolchain"); not = element.getAttribute("not"); Util.getChildElements(element).forEach(elm -> { switch (elm.getNodeName()) { case "cflags", "cxxflags", "ldflags" -> flags.add(new ConfigVar(elm, true)); case "pkgconfig" -> pkgconfig.add(new PkgConfigPackage(elm)); case "test" -> tests.add(Util.getContent(elm)); case "make" -> make.add(Util.getContent(elm)); case "lang" -> lang.add(Util.getContent(elm).toLowerCase()); } }); } /** * Returns the ID of this dependency, if it has a name. * @return the ID that can be used for shell scripts - empty if dependency has not a name */ public String getId() { return id; } public boolean hasName() { return !name.isEmpty(); } public String getName() { return name; } public String getPlatform() { return platform; } public String getFullName() { String fname = name; if (!platform.isBlank()) { fname += " platform=\"" + platform + '"'; } if (!toolchain.isBlank()) { fname += " toolchain=\"" + toolchain + '"'; } return fname; } public List<String> getNotList() { return Arrays.stream(not.split(",")) .map(String::trim) .filter(Predicate.not(String::isEmpty)) .collect(Collectors.toList()); } public String getToolchain() { return toolchain; } public List<ConfigVar> getFlags() { return flags; } public List<PkgConfigPackage> getPkgconfig() { return pkgconfig; } public List<String> getTests() { return tests; } public String getMake() { return String.join("\n", make); } public List<String> getLang() { return lang; } }