src/main/java/de/unixwork/uwproj/Config.java

Sun, 30 Nov 2025 10:14:33 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 30 Nov 2025 10:14:33 +0100
changeset 168
4cd9757c1ad9
parent 165
f4f11f755ee7
child 177
8872934e5fb2
permissions
-rw-r--r--

run compiler detection before trying to correct libdir + check TOOLCHAIN_WSIZE before setting 64bit libdir

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 Config {
    private final String platform;
    private final String not;

    private final List<ConfigVar> vars = new LinkedList<>();

    public Config(Element element) {
        platform = element.getAttribute("platform");
        not = element.getAttribute("not");

        Util.getChildElements(element).forEach(elm ->
            vars.add(new ConfigVar(elm))
        );

        // special case: prefix is requested, but exec_prefix is not
        // insert exec_prefix default directly after the prefix
        if (vars.stream().noneMatch(v -> v.getVarName().equals("exec_prefix"))) {
            for (var iter = vars.listIterator(); iter.hasNext();) {
                final var v = iter.next();
                if (v.getVarName().equals("prefix")) {
                    iter.add(new ConfigVar("exec_prefix"));
                    break;
                }
            }
        }
    }


    public String getPlatform() {
        return platform;
    }

    public List<String> getNotList() {
        return Arrays.stream(not.split(","))
                .map(String::trim)
                .filter(Predicate.not(String::isEmpty))
                .collect(Collectors.toList());
    }

    public List<ConfigVar> getVars() {
        return vars;
    }
}

mercurial