BaseTools: Enhance the *P Flag display for Structure Pcd

Cover the case:
1.only define the structure Pcd in DEC file, it should not have any
Flag.
2.In the DEC file and DSC file only have the PCD's default value, and
without the field value, it should have *P Flag.
(re-add this patch since it be reverted in Python3 migration patches,
but this patch is not related with Python3)

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Yonghong Zhu
2018-10-15 14:51:55 +08:00
parent 425084cd45
commit f88113789b

View File

@ -1079,13 +1079,22 @@ class PcdReport(object):
DecMatch = False DecMatch = False
elif Pcd.SkuOverrideValues: elif Pcd.SkuOverrideValues:
DscOverride = False DscOverride = False
if Pcd.DefaultFromDSC:
DscOverride = True
else:
DictLen = 0
for item in Pcd.SkuOverrideValues:
DictLen += len(Pcd.SkuOverrideValues[item])
if not DictLen:
DscOverride = False
else:
if not Pcd.SkuInfoList: if not Pcd.SkuInfoList:
OverrideValues = Pcd.SkuOverrideValues OverrideValues = Pcd.SkuOverrideValues
if OverrideValues: if OverrideValues:
Keys = OverrideValues.keys() Keys = list(OverrideValues.keys())
Data = OverrideValues[Keys[0]] Data = OverrideValues[Keys[0]]
Struct = Data.values()[0] Struct = list(Data.values())
DscOverride = self.ParseStruct(Struct) DscOverride = self.ParseStruct(Struct[0])
else: else:
SkuList = sorted(Pcd.SkuInfoList.keys()) SkuList = sorted(Pcd.SkuInfoList.keys())
for Sku in SkuList: for Sku in SkuList:
@ -1101,7 +1110,7 @@ class PcdReport(object):
else: else:
OverrideValues = Pcd.SkuOverrideValues[Sku] OverrideValues = Pcd.SkuOverrideValues[Sku]
if OverrideValues: if OverrideValues:
Keys = OverrideValues.keys() Keys = list(OverrideValues.keys())
OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]]) OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])
DscOverride = self.ParseStruct(OverrideFieldStruct) DscOverride = self.ParseStruct(OverrideFieldStruct)
if DscOverride: if DscOverride:
@ -1110,6 +1119,8 @@ class PcdReport(object):
DscDefaultValue = True DscDefaultValue = True
DscMatch = True DscMatch = True
DecMatch = False DecMatch = False
else:
DecMatch = True
else: else:
DscDefaultValue = True DscDefaultValue = True
DscMatch = True DscMatch = True
@ -1256,10 +1267,11 @@ class PcdReport(object):
if IsStructure: if IsStructure:
OverrideValues = Pcd.SkuOverrideValues OverrideValues = Pcd.SkuOverrideValues
if OverrideValues: if OverrideValues:
Keys = OverrideValues.keys() Keys = list(OverrideValues.keys())
Data = OverrideValues[Keys[0]] Data = OverrideValues[Keys[0]]
Struct = Data.values()[0] Struct = list(Data.values())
OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct) if Struct:
OverrideFieldStruct = self.OverrideFieldValue(Pcd, Struct[0])
self.PrintStructureInfo(File, OverrideFieldStruct) self.PrintStructureInfo(File, OverrideFieldStruct)
self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue) self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, DecDefaultValue)
else: else: