]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/BuildReport.py
BaseTools: Update build report for StructurePcd value
[mirror_edk2.git] / BaseTools / Source / Python / build / BuildReport.py
index 5709cde9d6ca9b14b859779ba1c4f3dc3cee22a2..50717b7c86362a3d32456221b65cf4bdd0d699c7 100644 (file)
@@ -968,7 +968,6 @@ class PcdReport(object):
                     if CName == PcdTokenCName and Guid == Key:\r
                         DscDefaultValue = self.FdfPcdSet[(CName, Guid, Field)]\r
                         break\r
-                DscDefaultValue = self.FdfPcdSet.get((Pcd.TokenCName, Key), DscDefaultValue)\r
                 if DscDefaultValue != DscDefaultValBak:\r
                     try:\r
                         DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)\r
@@ -1084,8 +1083,13 @@ class PcdReport(object):
                                 if DscOverride:\r
                                     break\r
                         if DscOverride:\r
+                            DscDefaultValue = True\r
                             DscMatch = True\r
                             DecMatch = False\r
+                    else:\r
+                        DscDefaultValue = True\r
+                        DscMatch = True\r
+                        DecMatch = False\r
 \r
                 #\r
                 # Report PCD item according to their override relationship\r
@@ -1352,16 +1356,22 @@ class PcdReport(object):
                     OverrideFieldStruct[Key] = Values\r
         if Pcd.PcdFieldValueFromFdf:\r
             for Key, Values in Pcd.PcdFieldValueFromFdf.items():\r
+                if Key in OverrideFieldStruct and Values[0] == OverrideFieldStruct[Key][0]:\r
+                    continue\r
                 OverrideFieldStruct[Key] = Values\r
         if Pcd.PcdFieldValueFromComm:\r
             for Key, Values in Pcd.PcdFieldValueFromComm.items():\r
+                if Key in OverrideFieldStruct and Values[0] == OverrideFieldStruct[Key][0]:\r
+                    continue\r
                 OverrideFieldStruct[Key] = Values\r
         return OverrideFieldStruct\r
 \r
     def PrintStructureInfo(self, File, Struct):\r
-        for Key, Value in Struct.items():\r
+        for Key, Value in sorted(Struct.items(), key=lambda x: x[0]):\r
             if Value[1] and 'build command options' in Value[1]:\r
                 FileWrite(File, '    *B  %-*s = %s' % (self.MaxLen + 4, '.' + Key, Value[0]))\r
+            elif Value[1] and Value[1].endswith('.fdf'):\r
+                FileWrite(File, '    *F  %-*s = %s' % (self.MaxLen + 4, '.' + Key, Value[0]))\r
             else:\r
                 FileWrite(File, '        %-*s = %s' % (self.MaxLen + 4, '.' + Key, Value[0]))\r
 \r