]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/BuildReport.py
BaseTools/EOT: Change to call a program instead of calling Python API.
[mirror_edk2.git] / BaseTools / Source / Python / build / BuildReport.py
index 4fe29f124d842d3371de129f0a173f7b6b3978f8..14143b3396c05e1cba888db05dccf5766d51bb77 100644 (file)
@@ -1079,37 +1079,48 @@ class PcdReport(object):
                         DecMatch = False\r
                     elif Pcd.SkuOverrideValues:\r
                         DscOverride = False\r
-                        if not Pcd.SkuInfoList:\r
-                            OverrideValues = Pcd.SkuOverrideValues\r
-                            if OverrideValues:\r
-                                Keys = OverrideValues.keys()\r
-                                Data = OverrideValues[Keys[0]]\r
-                                Struct = Data.values()[0]\r
-                                DscOverride = self.ParseStruct(Struct)\r
+                        if Pcd.DefaultFromDSC:\r
+                            DscOverride = True\r
                         else:\r
-                            SkuList = sorted(Pcd.SkuInfoList.keys())\r
-                            for Sku in SkuList:\r
-                                SkuInfo = Pcd.SkuInfoList[Sku]\r
-                                if TypeName in ('DYNHII', 'DEXHII'):\r
-                                    if SkuInfo.DefaultStoreDict:\r
-                                        DefaultStoreList = sorted(SkuInfo.DefaultStoreDict.keys())\r
-                                        for DefaultStore in DefaultStoreList:\r
-                                            OverrideValues = Pcd.SkuOverrideValues[Sku]\r
-                                            DscOverride = self.ParseStruct(OverrideValues[DefaultStore])\r
-                                            if DscOverride:\r
-                                                break\r
-                                else:\r
-                                    OverrideValues = Pcd.SkuOverrideValues[Sku]\r
+                            DictLen = 0\r
+                            for item in Pcd.SkuOverrideValues:\r
+                                DictLen += len(Pcd.SkuOverrideValues[item])\r
+                            if not DictLen:\r
+                                DscOverride = False\r
+                            else:\r
+                                if not Pcd.SkuInfoList:\r
+                                    OverrideValues = Pcd.SkuOverrideValues\r
                                     if OverrideValues:\r
-                                        Keys = OverrideValues.keys()\r
-                                        OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
-                                        DscOverride = self.ParseStruct(OverrideFieldStruct)\r
-                                if DscOverride:\r
-                                    break\r
+                                        Keys = list(OverrideValues.keys())\r
+                                        Data = OverrideValues[Keys[0]]\r
+                                        Struct = list(Data.values())\r
+                                        DscOverride = self.ParseStruct(Struct[0])\r
+                                else:\r
+                                    SkuList = sorted(Pcd.SkuInfoList.keys())\r
+                                    for Sku in SkuList:\r
+                                        SkuInfo = Pcd.SkuInfoList[Sku]\r
+                                        if TypeName in ('DYNHII', 'DEXHII'):\r
+                                            if SkuInfo.DefaultStoreDict:\r
+                                                DefaultStoreList = sorted(SkuInfo.DefaultStoreDict.keys())\r
+                                                for DefaultStore in DefaultStoreList:\r
+                                                    OverrideValues = Pcd.SkuOverrideValues[Sku]\r
+                                                    DscOverride = self.ParseStruct(OverrideValues[DefaultStore])\r
+                                                    if DscOverride:\r
+                                                        break\r
+                                        else:\r
+                                            OverrideValues = Pcd.SkuOverrideValues[Sku]\r
+                                            if OverrideValues:\r
+                                                Keys = list(OverrideValues.keys())\r
+                                                OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
+                                                DscOverride = self.ParseStruct(OverrideFieldStruct)\r
+                                        if DscOverride:\r
+                                            break\r
                         if DscOverride:\r
                             DscDefaultValue = True\r
                             DscMatch = True\r
                             DecMatch = False\r
+                        else:\r
+                            DecMatch = True\r
                     else:\r
                         DscDefaultValue = True\r
                         DscMatch = True\r
@@ -1256,11 +1267,12 @@ class PcdReport(object):
             if IsStructure:\r
                 OverrideValues = Pcd.SkuOverrideValues\r
                 if OverrideValues:\r
-                    Keys = OverrideValues.keys()\r
+                    Keys = list(OverrideValues.keys())\r
                     Data = OverrideValues[Keys[0]]\r
-                    Struct = Data.values()[0]\r
-                    OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct)\r
-                    self.PrintStructureInfo(File, OverrideFieldStruct)\r
+                    Struct = list(Data.values())\r
+                    if Struct:\r
+                        OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct[0])\r
+                        self.PrintStructureInfo(File, OverrideFieldStruct)\r
             self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)\r
         else:\r
             FirstPrint = True\r
@@ -1614,7 +1626,7 @@ class PredictionReport(object):
         TempFile.close()\r
 \r
         try:\r
-            from Eot.Eot import Eot\r
+            from Eot.EotMain import Eot\r
 \r
             #\r
             # Invoke EOT tool and echo its runtime performance\r