Reviewed-by: Liming Gao <[email protected]>
> -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of Zhu, > Yonghong > Sent: Thursday, October 11, 2018 3:06 PM > To: [email protected] > Cc: Gao, Liming <[email protected]> > Subject: [edk2] [Patch] 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. > > Cc: Liming Gao <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Yonghong Zhu <[email protected]> > --- > BaseTools/Source/Python/build/BuildReport.py | 66 > ++++++++++++++++------------ > 1 file changed, 39 insertions(+), 27 deletions(-) > > diff --git a/BaseTools/Source/Python/build/BuildReport.py > b/BaseTools/Source/Python/build/BuildReport.py > index feaf6a5..031594b 100644 > --- a/BaseTools/Source/Python/build/BuildReport.py > +++ b/BaseTools/Source/Python/build/BuildReport.py > @@ -1071,41 +1071,52 @@ class PcdReport(object): > if Pcd.PcdFieldValueFromComm: > BuildOptionMatch = True > DecMatch = False > elif Pcd.SkuOverrideValues: > DscOverride = False > - if not Pcd.SkuInfoList: > - OverrideValues = Pcd.SkuOverrideValues > - if OverrideValues: > - Keys = list(OverrideValues.keys()) > - Data = OverrideValues[Keys[0]] > - Struct = list(Data.values())[0] > - DscOverride = self.ParseStruct(Struct) > + if Pcd.DefaultFromDSC: > + DscOverride = True > else: > - SkuList = sorted(Pcd.SkuInfoList.keys()) > - for Sku in SkuList: > - SkuInfo = Pcd.SkuInfoList[Sku] > - if TypeName in ('DYNHII', 'DEXHII'): > - if SkuInfo.DefaultStoreDict: > - DefaultStoreList = > sorted(SkuInfo.DefaultStoreDict.keys()) > - for DefaultStore in DefaultStoreList: > - OverrideValues = > Pcd.SkuOverrideValues[Sku] > - DscOverride = > self.ParseStruct(OverrideValues[DefaultStore]) > - if DscOverride: > - break > - else: > - OverrideValues = > Pcd.SkuOverrideValues[Sku] > + DictLen = 0 > + for item in Pcd.SkuOverrideValues: > + DictLen += len(Pcd.SkuOverrideValues[item]) > + if not DictLen: > + DscOverride = False > + else: > + if not Pcd.SkuInfoList: > + OverrideValues = Pcd.SkuOverrideValues > if OverrideValues: > Keys = list(OverrideValues.keys()) > - OverrideFieldStruct = > self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]]) > - DscOverride = > self.ParseStruct(OverrideFieldStruct) > - if DscOverride: > - break > + Data = OverrideValues[Keys[0]] > + Struct = list(Data.values()) > + DscOverride = > self.ParseStruct(Struct[0]) > + else: > + SkuList = sorted(Pcd.SkuInfoList.keys()) > + for Sku in SkuList: > + SkuInfo = Pcd.SkuInfoList[Sku] > + if TypeName in ('DYNHII', 'DEXHII'): > + if SkuInfo.DefaultStoreDict: > + DefaultStoreList = > sorted(SkuInfo.DefaultStoreDict.keys()) > + for DefaultStore in > DefaultStoreList: > + OverrideValues = > Pcd.SkuOverrideValues[Sku] > + DscOverride = > self.ParseStruct(OverrideValues[DefaultStore]) > + if DscOverride: > + break > + else: > + OverrideValues = > Pcd.SkuOverrideValues[Sku] > + if OverrideValues: > + Keys = > list(OverrideValues.keys()) > + OverrideFieldStruct = > self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]]) > + DscOverride = > self.ParseStruct(OverrideFieldStruct) > + if DscOverride: > + break > if DscOverride: > DscDefaultValue = True > DscMatch = True > DecMatch = False > + else: > + DecMatch = True > else: > DscDefaultValue = True > DscMatch = True > DecMatch = False > > @@ -1250,13 +1261,14 @@ class PcdReport(object): > if IsStructure: > OverrideValues = Pcd.SkuOverrideValues > if OverrideValues: > Keys = list(OverrideValues.keys()) > Data = OverrideValues[Keys[0]] > - Struct = list(Data.values())[0] > - OverrideFieldStruct = self.OverrideFieldValue(Pcd, > Struct) > - self.PrintStructureInfo(File, OverrideFieldStruct) > + Struct = list(Data.values()) > + if Struct: > + OverrideFieldStruct = self.OverrideFieldValue(Pcd, > Struct[0]) > + self.PrintStructureInfo(File, OverrideFieldStruct) > self.PrintPcdDefault(File, Pcd, IsStructure, DscMatch, > DscDefaultValue, InfMatch, InfDefaultValue, DecMatch, > DecDefaultValue) > else: > FirstPrint = True > SkuList = sorted(Pcd.SkuInfoList.keys()) > for Sku in SkuList: > -- > 2.6.1.windows.1 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

