]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Fixed Build failed issue.
authorBobCF <bob.c.feng@intel.com>
Tue, 6 Feb 2018 07:20:46 +0000 (15:20 +0800)
committerLiming Gao <liming.gao@intel.com>
Thu, 8 Feb 2018 03:09:45 +0000 (11:09 +0800)
If the PCD is not used in DSC file and user set
that PCD value from Command line, build will fail.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Workspace/DscBuildData.py

index 01592e147e144fb3ee579967d9d7717b910d9244..8833034a1e0f6bbbb501ce1d51216bfb777c7e1e 100644 (file)
@@ -898,7 +898,8 @@ class DscBuildData(PlatformBuildClassObject):
                     if pcdobj:\r
                         pcdset.append((pcd[0],pcd[1], pcdobj.DefaultValue))\r
                     else:\r
-                        pcdset.append((pcd[0],pcd[1],pcd[3]))\r
+                        pcdvalue = pcd[3] if len(pcd) == 4 else pcd[2]\r
+                        pcdset.append((pcd[0],pcd[1],pcdvalue))\r
         GlobalData.BuildOptionPcd = pcdset\r
     def GetFieldValueFromComm(self,ValueStr,TokenSpaceGuidCName, TokenCName, FieldName):\r
         PredictedFieldType = "VOID*"\r
@@ -2233,10 +2234,14 @@ class DscBuildData(PlatformBuildClassObject):
         for pcd in Pcds.values():\r
             SkuInfoObj = pcd.SkuInfoList.values()[0]\r
             pcdDecObject = self._DecPcds[pcd.TokenCName, pcd.TokenSpaceGuidCName]\r
+            pcd.DatumType = pcdDecObject.DatumType\r
             # Only fix the value while no value provided in DSC file.\r
             for sku in pcd.SkuInfoList.values():\r
                 if (sku.HiiDefaultValue == "" or sku.HiiDefaultValue == None):\r
                     sku.HiiDefaultValue = pcdDecObject.DefaultValue\r
+                    for default_store in sku.DefaultStoreDict:\r
+                        sku.DefaultStoreDict[default_store]=pcdDecObject.DefaultValue\r
+                    pcd.DefaultValue = pcdDecObject.DefaultValue\r
             if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys():\r
                 valuefromDec = pcdDecObject.DefaultValue\r
                 SkuInfo = SkuInfoClass('DEFAULT', '0', SkuInfoObj.VariableName, SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, valuefromDec,VariableAttribute=SkuInfoObj.VariableAttribute,DefaultStore={DefaultStore:valuefromDec})\r