]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/BuildReport.py
BaseTools: Support PCD flexible values format
[mirror_edk2.git] / BaseTools / Source / Python / build / BuildReport.py
index 75e8ec97ab8a74e224aebc4008627099c8c5384b..5da99145441a755b588c233df908c010f95b5978 100644 (file)
@@ -45,6 +45,7 @@ from Common.Misc import PathClass
 from Common.String import NormPath\r
 from Common.DataType import *\r
 import collections\r
+from Common.Expression import ValueExpressionEx\r
 \r
 ## Pattern to extract contents in EDK DXS files\r
 gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)\r
@@ -849,8 +850,11 @@ class PcdReport(object):
         # Collect PCD DEC default value.\r
         #\r
         self.DecPcdDefault = {}\r
+        self._GuidDict = {}\r
         for Pa in Wa.AutoGenObjectList:\r
             for Package in Pa.PackageList:\r
+                Guids = Package.Guids\r
+                self._GuidDict.update(Guids)\r
                 for (TokenCName, TokenSpaceGuidCName, DecType) in Package.Pcds:\r
                     DecDefaultValue = Package.Pcds[TokenCName, TokenSpaceGuidCName, DecType].DefaultValue\r
                     self.DecPcdDefault.setdefault((TokenCName, TokenSpaceGuidCName, DecType), DecDefaultValue)\r
@@ -943,6 +947,8 @@ class PcdReport(object):
                     DscDefaultValue = self.DscPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName))\r
                     DscDefaultValBak= DscDefaultValue\r
                     DscDefaultValue = self.FdfPcdSet.get((Pcd.TokenCName, Key), DscDefaultValue)\r
+                    if DscDefaultValue:\r
+                        DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)\r
                     InfDefaultValue = None\r
                     \r
                     PcdValue = DecDefaultValue\r