X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FJava%2FSource%2FGenBuild%2Forg%2Ftianocore%2Fbuild%2Ffpd%2FPlatformBuildFileGenerator.java;fp=Tools%2FJava%2FSource%2FGenBuild%2Forg%2Ftianocore%2Fbuild%2Ffpd%2FPlatformBuildFileGenerator.java;h=ad2ee2cdd24ccf5d1c945c7d2c60757717513d2f;hp=1e5c7744b557811323045b0813d6a6ac69af12de;hb=e3cc406130b14c020c75e3a169f94ba001bf2128;hpb=822d4f3a53a69dcbc1c9eaaf318a0d69d9b8de0e diff --git a/Tools/Java/Source/GenBuild/org/tianocore/build/fpd/PlatformBuildFileGenerator.java b/Tools/Java/Source/GenBuild/org/tianocore/build/fpd/PlatformBuildFileGenerator.java index 1e5c7744b5..ad2ee2cdd2 100644 --- a/Tools/Java/Source/GenBuild/org/tianocore/build/fpd/PlatformBuildFileGenerator.java +++ b/Tools/Java/Source/GenBuild/org/tianocore/build/fpd/PlatformBuildFileGenerator.java @@ -159,7 +159,8 @@ public class PlatformBuildFileGenerator { // User Extension Post build // applyUserExtensionsPostBuild(document, root); - + applyUserExtensions(document, root); + document.appendChild(rootComment); document.appendChild(root); // @@ -630,7 +631,59 @@ public class PlatformBuildFileGenerator { root.appendChild(ele); } - + + private void applyUserExtensions(Document document, Node root) { + Node[] nodeList = saq.getFpdUserExtensions(); + for (int nodeIndex = 0; nodeIndex < nodeList.length; ++nodeIndex) { + Node node = nodeList[nodeIndex]; + // + // User Extensions + // + root.appendChild(document.createComment("User Defined Target")); + Element ele = document.createElement("target"); + ele.setAttribute("name", node.getAttributes().getNamedItem("Identifier").getNodeValue()); + + if (node != null) { + // + // For every Target and ToolChain + // + String[] targetList = GlobalData.getToolChainInfo().getTargets(); + for (int i = 0; i < targetList.length; i++){ + String[] toolchainList = GlobalData.getToolChainInfo().getTagnames(); + for(int j = 0; j < toolchainList.length; j++){ + // + // Prepare FV_DIR + // + String ffsCommonDir = project.getProperty("BUILD_DIR") + File.separatorChar + + targetList[i] + "_" + + toolchainList[j]; + File fvDir = new File(ffsCommonDir + File.separatorChar + "FV"); + Element fvEle = document.createElement("var"); + fvEle.setAttribute("name", "FV_DIR"); + fvEle.setAttribute("value", fvDir.getPath().replaceAll("(\\\\)", "/")); + ele.appendChild(fvEle); + + Element targetDirEle = document.createElement("var"); + targetDirEle.setAttribute("name", "TARGET_DIR"); + targetDirEle.setAttribute("value", ffsCommonDir.replaceAll("(\\\\)", "/")); + ele.appendChild(targetDirEle); + + NodeList childNodes = node.getChildNodes(); + for (int k = 0; k < childNodes.getLength(); k++) { + Node childItem = childNodes.item(k); + if (childItem.getNodeType() == Node.ELEMENT_NODE) { + ele.appendChild(recursiveNode(childItem, document)); + } + } + + } + } + } + + root.appendChild(ele); + } + } + private Element recursiveNode(Node node, Document document) { Element root = document.createElement(node.getNodeName()); NamedNodeMap attr = node.getAttributes();