import org.w3c.dom.Comment;\r
import org.w3c.dom.Document;\r
import org.w3c.dom.Element;\r
+import org.w3c.dom.NamedNodeMap;\r
import org.w3c.dom.Node;\r
+import org.w3c.dom.NodeList;\r
\r
public class PlatformBuildFileGenerator {\r
\r
ele.setAttribute("resource", "frameworktasks.tasks");\r
root.appendChild(ele);\r
\r
+ ele = document.createElement("taskdef");\r
+ ele.setAttribute("resource", "net/sf/antcontrib/antlib.xml");\r
+ root.appendChild(ele);\r
+ \r
ele = document.createElement("property");\r
ele.setAttribute("environment", "env");\r
root.appendChild(ele);\r
throw new BuildException("Generate " + platformName + "_build.xml failed. \n" + ex.getMessage());\r
}\r
}\r
+ \r
private void applyModules(Document document, Node root, String num) {\r
root.appendChild(document.createComment("Modules target"));\r
Element ele = document.createElement("target");\r
ele.setAttribute("name", "cleanall");\r
\r
if (isUnified) {\r
- Element cleanAllEle = document.createElement("delete");\r
- cleanAllEle.setAttribute("dir", project.getProperty("BUILD_DIR"));\r
- ele.appendChild(cleanAllEle);\r
+ String[] targetList = GlobalData.getToolChainInfo().getTargets();\r
+ for (int i = 0; i < targetList.length; ++i) {\r
+ Element cleanAllEle = document.createElement("delete");\r
+ cleanAllEle.setAttribute("dir", project.getProperty("BUILD_DIR") + File.separatorChar + targetList[i]);\r
+ ele.appendChild(cleanAllEle);\r
+ }\r
} else {\r
Set set = outfiles.keySet();\r
Iterator iter = set.iterator();\r
Element ele = document.createElement("target");\r
ele.setAttribute("name", "userextensions");\r
\r
+ Node node = SurfaceAreaQuery.getFpdUserExtension();\r
+ if (node != null) {\r
+ //\r
+ // For every Target and ToolChain\r
+ //\r
+ String[] targetList = GlobalData.getToolChainInfo().getTargets();\r
+ for (int i = 0; i < targetList.length; i++){\r
+ String[] toolchainList = GlobalData.getToolChainInfo().getTagnames();\r
+ for(int j = 0; j < toolchainList.length; j++){\r
+ //\r
+ // Prepare FV_DIR\r
+ //\r
+ String ffsCommonDir = project.getProperty("BUILD_DIR") + File.separatorChar \r
+ + targetList[i] + File.separatorChar \r
+ + toolchainList[j];\r
+ File fvDir = new File(ffsCommonDir + File.separatorChar + "FV");\r
+ Element fvEle = document.createElement("var");\r
+ fvEle.setAttribute("name", "FV_DIR");\r
+ fvEle.setAttribute("value", fvDir.getPath().replaceAll("(\\\\)", "/"));\r
+ ele.appendChild(fvEle);\r
+ \r
+ NodeList childNodes = node.getChildNodes();\r
+ for (int k = 0; k < childNodes.getLength(); k++) {\r
+ Node childItem = childNodes.item(k);\r
+ if (childItem.getNodeType() == Node.ELEMENT_NODE) {\r
+ ele.appendChild(recursiveNode(childItem, document));\r
+ }\r
+ }\r
+ \r
+ }\r
+ }\r
+ }\r
+ \r
root.appendChild(ele);\r
}\r
\r
+ private Element recursiveNode(Node node, Document document) {\r
+ Element root = document.createElement(node.getNodeName());\r
+ NamedNodeMap attr = node.getAttributes();\r
+ for (int i = 0; i < attr.getLength(); i++) {\r
+ Node attrItem = attr.item(i);\r
+ root.setAttribute(attrItem.getNodeName(), attrItem.getNodeValue());\r
+ }\r
+ NodeList childNodes = node.getChildNodes();\r
+ for (int i = 0; i < childNodes.getLength(); i++) {\r
+ Node childItem = childNodes.item(i);\r
+ if (childItem.getNodeType() == Node.ELEMENT_NODE) {\r
+ root.appendChild(recursiveNode(childItem, document));\r
+ }\r
+ else if (childItem.getNodeType() == Node.TEXT_NODE){\r
+ if ( ! childItem.getNodeValue().trim().equalsIgnoreCase("")) {\r
+ root.setTextContent(childItem.getNodeValue());\r
+ }\r
+ }\r
+ }\r
+ return root;\r
+ }\r
\r
private boolean isListInSequence(String fvName) {\r
Set<String> numbers = sequences.keySet();\r