]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/InfBuildData.py
BaseTools: Support PCD flexible values format
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / InfBuildData.py
index fd94067c93e4deab338982fc3ea71207ed76d24d..7ea9b56d5decba82b52e742d15851d1c63ce6619 100644 (file)
@@ -16,6 +16,7 @@ from Common.String import *
 from Common.DataType import *\r
 from Common.Misc import *\r
 from types import *\r
+from MetaFileParser import *\r
 \r
 from Workspace.BuildClassObject import ModuleBuildClassObject, LibraryClassObject, PcdClassObject\r
 ## Module build information from INF file\r
@@ -1144,6 +1145,12 @@ class InfBuildData(ModuleBuildClassObject):
                     Pcd.InfDefaultValue = Pcd.DefaultValue\r
                     if Pcd.DefaultValue in [None, '']:\r
                         Pcd.DefaultValue = PcdInPackage.DefaultValue\r
+                    else:\r
+                        try:\r
+                            Pcd.DefaultValue = ValueExpressionEx(Pcd.DefaultValue, Pcd.DatumType, self.Guids)(True)\r
+                        except BadExpression, Value:\r
+                            EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %(TokenSpaceGuid, PcdRealName, Pcd.DefaultValue, Value),\r
+                                            File=self.MetaFile, Line=LineNo)\r
                     break\r
             else:\r
                 EdkLogger.error(\r