]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
Sync BaseTools Trunk (version r2524) to EDKII main trunk.
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / WorkspaceDatabase.py
index 16766d32dc38dacd18f9668a246d73d6ec3dd363..e5fb41a8e0e276750fcb28ca85e19b26e9b173da 100644 (file)
@@ -852,6 +852,21 @@ class DscBuildData(PlatformBuildClassObject):
                     EdkLogger.error('build', PARSER_ERROR,\r
                                     "Pcd (%s.%s) defined in DSC is not declared in DEC files." % (TokenSpaceGuid, PcdCName),\r
                                     File=self.MetaFile, Line=Dummy4)\r
+                PcdValue = ''\r
+                if PcdType in (MODEL_PCD_DYNAMIC_VPD, MODEL_PCD_DYNAMIC_EX_VPD):\r
+                    if DecPcds[PcdCName, TokenSpaceGuid].DatumType == "VOID*":\r
+                        PcdValue = AnalyzeVpdPcdData(Setting)[2]\r
+                    else:\r
+                        PcdValue = AnalyzeVpdPcdData(Setting)[1]\r
+                elif PcdType in (MODEL_PCD_DYNAMIC_HII, MODEL_PCD_DYNAMIC_EX_HII):\r
+                    PcdValue = AnalyzeHiiPcdData(Setting)[3]\r
+                else:\r
+                    PcdValue = AnalyzePcdData(Setting)[0]\r
+                if PcdValue:\r
+                    Valid, ErrStr = CheckPcdDatum(DecPcds[PcdCName, TokenSpaceGuid].DatumType, PcdValue)\r
+                    if not Valid:\r
+                        EdkLogger.error('build', FORMAT_INVALID, ErrStr, File=self.MetaFile, Line=Dummy4,\r
+                                    ExtraData="%s.%s" % (TokenSpaceGuid, PcdCName))\r
 \r
     _Macros             = property(_GetMacros)\r
     Arch                = property(_GetArch, _SetArch)\r