From: BobCF Date: Tue, 6 Feb 2018 07:20:46 +0000 (+0800) Subject: BaseTools: Fixed Build failed issue. X-Git-Tag: edk2-stable201903~2443 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=e1511113debf54ec2aceb20ee8eeecb331acd498;hp=8aa4db4b807ea7de395acd4018a139745327e374 BaseTools: Fixed Build failed issue. 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 Cc: Liming Gao Reviewed-by: Liming Gao --- diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py index 01592e147e..8833034a1e 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -898,7 +898,8 @@ class DscBuildData(PlatformBuildClassObject): if pcdobj: pcdset.append((pcd[0],pcd[1], pcdobj.DefaultValue)) else: - pcdset.append((pcd[0],pcd[1],pcd[3])) + pcdvalue = pcd[3] if len(pcd) == 4 else pcd[2] + pcdset.append((pcd[0],pcd[1],pcdvalue)) GlobalData.BuildOptionPcd = pcdset def GetFieldValueFromComm(self,ValueStr,TokenSpaceGuidCName, TokenCName, FieldName): PredictedFieldType = "VOID*" @@ -2233,10 +2234,14 @@ class DscBuildData(PlatformBuildClassObject): for pcd in Pcds.values(): SkuInfoObj = pcd.SkuInfoList.values()[0] pcdDecObject = self._DecPcds[pcd.TokenCName, pcd.TokenSpaceGuidCName] + pcd.DatumType = pcdDecObject.DatumType # Only fix the value while no value provided in DSC file. for sku in pcd.SkuInfoList.values(): if (sku.HiiDefaultValue == "" or sku.HiiDefaultValue == None): sku.HiiDefaultValue = pcdDecObject.DefaultValue + for default_store in sku.DefaultStoreDict: + sku.DefaultStoreDict[default_store]=pcdDecObject.DefaultValue + pcd.DefaultValue = pcdDecObject.DefaultValue if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys(): valuefromDec = pcdDecObject.DefaultValue SkuInfo = SkuInfoClass('DEFAULT', '0', SkuInfoObj.VariableName, SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, valuefromDec,VariableAttribute=SkuInfoObj.VariableAttribute,DefaultStore={DefaultStore:valuefromDec})