]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
a. Add support arch. filter for library instance selection in FPD file.
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index 5f4e0b522eeb17e69ae43a7175400f97f80abcd4..fc49cd4151faf641964d3a1e920b9e3a3cdc344f 100644 (file)
@@ -578,12 +578,21 @@ public class FpdFileContents {
                     //\r
                     // change item type while not updating dynPcdData????\r
                     //\r
-                    pcdData.setItemType(PcdItemTypes.Enum.forString(itemType));\r
-                    if(pcdData.getDatumType().equals("VOID*")) {\r
+                    if (itemType != null) {\r
+                        pcdData.setItemType(PcdItemTypes.Enum.forString(itemType));\r
+                    }\r
+                    \r
+                    if(pcdData.getDatumType().equals("VOID*") && maxSize != null) {\r
                         pcdData.setMaxDatumSize(new Integer(maxSize));\r
                     }\r
-                    pcdData.setValue(value);\r
-                    defaultPcdValue.put(cName + " " + tsGuid, value);\r
+                    //\r
+                    // if value input is null, keep old value untouched.\r
+                    //\r
+                    if (value != null) {\r
+                        pcdData.setValue(value);\r
+                        defaultPcdValue.put(cName + " " + tsGuid, value);\r
+                    }\r
+                    \r
                     break;\r
                 }\r
             }\r
@@ -2039,6 +2048,45 @@ public class FpdFileContents {
         }\r
     }\r
     \r
+    public void addModuleIntoBuildOptionsUserExtensions (String fvName, String moduleGuid, String moduleVersion, String packageGuid, String packageVersion, String arch) {\r
+        if (moduleInBuildOptionsUserExtensions (fvName, moduleGuid, moduleVersion, packageGuid, packageVersion, arch)) {\r
+            return;\r
+        }\r
+        ListIterator<UserExtensionsDocument.UserExtensions> li = getfpdBuildOpts().getUserExtensionsList().listIterator();\r
+        QName elementIncludeModules = new QName(xmlNs, "IncludeModules");\r
+        QName elementModule = new QName(xmlNs, "Module");\r
+        while (li.hasNext()) {\r
+            UserExtensionsDocument.UserExtensions ues = li.next();\r
+            if (!ues.getUserID().equals("IMAGES")) {\r
+                continue;\r
+            }\r
+            XmlCursor cursor = ues.newCursor();\r
+            cursor.toFirstChild();\r
+            String elementName = cursor.getTextValue();\r
+            if (elementName.equals(fvName)) {\r
+                cursor.toNextSibling(elementIncludeModules);\r
+                cursor.toLastChild();\r
+                cursor.toEndToken();\r
+                cursor.toNextToken();\r
+                cursor.beginElement(elementModule);\r
+                cursor.insertAttributeWithValue("ModuleGuid", moduleGuid);\r
+                if (!moduleVersion.equals("null") && moduleVersion.length() != 0) {\r
+                    cursor.insertAttributeWithValue("ModuleVersion", moduleVersion);\r
+                }\r
+                cursor.insertAttributeWithValue("PackageGuid", packageGuid);\r
+                if (!packageVersion.equals("null") && packageVersion.length() != 0) {\r
+                    cursor.insertAttributeWithValue("PackageVersion", packageVersion);\r
+                }\r
+                \r
+                cursor.insertAttributeWithValue("Arch", arch);\r
+                cursor.dispose();\r
+                return;\r
+            }\r
+            cursor.dispose();\r
+        }\r
+        \r
+    }\r
+    \r
     public void genBuildOptionsUserDefAntTask (String id, String fileName, String execOrder) {\r
         UserDefinedAntTasksDocument.UserDefinedAntTasks udats = getfpdBuildOpts().getUserDefinedAntTasks();\r
         if (udats == null) {\r