Sat, 03 Aug 2019 11:02:55 +0200
make targets without name and prefix possible
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.unixwork.uwproj; import java.util.LinkedList; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * * @author olaf */ public class Dependency { private String name; private String platform; private List<Flags> flags = new LinkedList<>(); private List<PkgConfigPackage> pkgconfig = new LinkedList<>(); private List<String> tests = new LinkedList<>(); private boolean abortOnError = false; private int num = 0; public static Dependency parse(Element element) throws Exception { Dependency d = new Dependency(); String name = element.getAttribute("name"); String platform = element.getAttribute("platform"); if(name.length() > 0) { d.setName(name); } if(platform.length() > 0) { d.setPlatform(platform); } NodeList nodes = element.getChildNodes(); for(int i=0;i<nodes.getLength();i++) { Node node = nodes.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { Element elm = (Element)node; String n = elm.getNodeName(); if(n.equals("cflags") || n.equals("ldflags")) { Flags f = Flags.parse(elm); d.addFlags(f); } else if(n.equals("pkgconfig")) { PkgConfigPackage pcp = PkgConfigPackage.parse(elm); d.addPkgconfig(pcp); } else if(n.equals("test")) { d.tests.add(Xml.getContent(elm)); } } } return d; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPlatform() { return platform; } public String getPlatformString() { if(platform == null || platform.length() == 0) { return ""; } else { return "platform=\""+platform+'"'; } } public void setPlatform(String platform) { this.platform = platform; } public List<Flags> getFlags() { return flags; } public void addFlags(Flags flags) { this.flags.add(flags); } public List<PkgConfigPackage> getPkgconfig() { return pkgconfig; } public void addPkgconfig(PkgConfigPackage pkgconfig) { this.pkgconfig.add(pkgconfig); } public boolean isAbortOnError() { return abortOnError; } public void setAbortOnError(boolean abortOnError) { this.abortOnError = abortOnError; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public List<String> getTests() { return tests; } }