]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/fpd/PlatformBuildFileGenerator.java
Add one more platform level common property "TARGET_DIR". Take Nt32 for example:...
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / fpd / PlatformBuildFileGenerator.java
index dd812d8e8ababd70067f65d43a384d515326bc45..375122483f7e04f4f9f458c0f939c45d1222ba4e 100644 (file)
@@ -62,6 +62,8 @@ public class PlatformBuildFileGenerator {
 \r
     private boolean isUnified = true;\r
     \r
+    private SurfaceAreaQuery saq = null;\r
+    \r
     private Project project;\r
     \r
     private String info = "DO NOT EDIT \n" \r
@@ -70,11 +72,12 @@ public class PlatformBuildFileGenerator {
         + "Abstract:\n"\r
         + "Auto-generated ANT build file for building EFI Modules and Platforms\n";\r
 \r
-    public PlatformBuildFileGenerator(Project project, Map<FpdModuleIdentification, String> outfiles, Map<String, Set<FpdModuleIdentification>> fvs, boolean isUnified){\r
+    public PlatformBuildFileGenerator(Project project, Map<FpdModuleIdentification, String> outfiles, Map<String, Set<FpdModuleIdentification>> fvs, boolean isUnified, SurfaceAreaQuery saq){\r
         this.project = project;\r
         this.outfiles = outfiles;\r
         this.isUnified = isUnified;\r
         this.fvs = fvs;\r
+        this.saq = saq;\r
         this.platformName = project.getProperty("PLATFORM");\r
     }\r
     \r
@@ -197,7 +200,7 @@ public class PlatformBuildFileGenerator {
         //\r
         // Get all valid FV name\r
         //\r
-        String[] validFv = SurfaceAreaQuery.getFpdValidImageNames();\r
+        String[] validFv = saq.getFpdValidImageNames();\r
         \r
         //\r
         // For each valid FV, get all modules in sequence\r
@@ -312,7 +315,7 @@ public class PlatformBuildFileGenerator {
                 String fvOutputDir = project.getProperty("BUILD_DIR") + File.separatorChar \r
                                         + targetList[i] + "_" \r
                                         + toolchainList[j] + File.separatorChar + "FV";\r
-                String[] validFv = SurfaceAreaQuery.getFpdValidImageNames();\r
+                String[] validFv = saq.getFpdValidImageNames();\r
                 for (int k = 0; k < validFv.length; k++) {\r
                     String inputFile = fvOutputDir + "" + File.separatorChar + validFv[k].toUpperCase() + ".inf";\r
                     Element fvEle = document.createElement("genfvimage");\r
@@ -507,7 +510,7 @@ public class PlatformBuildFileGenerator {
         Element ele = document.createElement("target");\r
         ele.setAttribute("name", "prebuild");\r
         \r
-        Node node = SurfaceAreaQuery.getFpdUserExtensionPreBuild();\r
+        Node node = saq.getFpdUserExtensionPreBuild();\r
         if (node != null) {\r
             //\r
             // For every Target and ToolChain\r
@@ -528,6 +531,11 @@ public class PlatformBuildFileGenerator {
                     fvEle.setAttribute("value", fvDir.getPath().replaceAll("(\\\\)", "/"));\r
                     ele.appendChild(fvEle);\r
                     \r
+                    Element targetDirEle = document.createElement("var");\r
+                    targetDirEle.setAttribute("name", "TARGET_DIR");\r
+                    targetDirEle.setAttribute("value", ffsCommonDir.replaceAll("(\\\\)", "/"));\r
+                    ele.appendChild(targetDirEle);\r
+                    \r
                     NodeList childNodes = node.getChildNodes();\r
                     for (int k = 0; k < childNodes.getLength(); k++) {\r
                         Node childItem = childNodes.item(k);\r
@@ -535,7 +543,6 @@ public class PlatformBuildFileGenerator {
                             ele.appendChild(recursiveNode(childItem, document));\r
                         }\r
                     }\r
-                \r
                 }\r
             }\r
         }\r
@@ -551,7 +558,7 @@ public class PlatformBuildFileGenerator {
         Element ele = document.createElement("target");\r
         ele.setAttribute("name", "postbuild");\r
         \r
-        Node node = SurfaceAreaQuery.getFpdUserExtensionPostBuild();\r
+        Node node = saq.getFpdUserExtensionPostBuild();\r
         if (node != null) {\r
             //\r
             // For every Target and ToolChain\r
@@ -572,6 +579,11 @@ public class PlatformBuildFileGenerator {
                     fvEle.setAttribute("value", fvDir.getPath().replaceAll("(\\\\)", "/"));\r
                     ele.appendChild(fvEle);\r
                     \r
+                    Element targetDirEle = document.createElement("var");\r
+                    targetDirEle.setAttribute("name", "TARGET_DIR");\r
+                    targetDirEle.setAttribute("value", ffsCommonDir.replaceAll("(\\\\)", "/"));\r
+                    ele.appendChild(targetDirEle);\r
+                    \r
                     NodeList childNodes = node.getChildNodes();\r
                     for (int k = 0; k < childNodes.getLength(); k++) {\r
                         Node childItem = childNodes.item(k);\r