BaseTool: Support different PCDs that refers to the same EFI variable.
If Structure PCD and Normal Pcd refer to the same EFI variable, do EFI variable merge, otherwise, do EFI variable combination. 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>
This commit is contained in:
committed by
Liming Gao
parent
57ee97c01c
commit
6a147d6dae
@ -70,6 +70,7 @@ class PcdClassObject(object):
|
||||
self.DscDefaultValue = Value
|
||||
self.PcdValueFromComm = ""
|
||||
self.PcdValueFromFdf = ""
|
||||
self.CustomAttribute = {}
|
||||
self.UserDefinedDefaultStoresFlag = UserDefinedDefaultStoresFlag
|
||||
|
||||
@staticmethod
|
||||
@ -224,6 +225,7 @@ class StructurePcd(PcdClassObject):
|
||||
self.DscRawValue = PcdObject.DscRawValue if PcdObject.DscRawValue else self.DscRawValue
|
||||
self.PcdValueFromComm = PcdObject.PcdValueFromComm if PcdObject.PcdValueFromComm else self.PcdValueFromComm
|
||||
self.PcdValueFromFdf = PcdObject.PcdValueFromFdf if PcdObject.PcdValueFromFdf else self.PcdValueFromFdf
|
||||
self.CustomAttribute = PcdObject.CustomAttribute if PcdObject.CustomAttribute else self.CustomAttribute
|
||||
self.UserDefinedDefaultStoresFlag = PcdObject.UserDefinedDefaultStoresFlag if PcdObject.UserDefinedDefaultStoresFlag else self.UserDefinedDefaultStoresFlag
|
||||
if isinstance(PcdObject, StructurePcd):
|
||||
self.StructuredPcdIncludeFile = PcdObject.StructuredPcdIncludeFile if PcdObject.StructuredPcdIncludeFile else self.StructuredPcdIncludeFile
|
||||
|
@ -1536,6 +1536,7 @@ class DscBuildData(PlatformBuildClassObject):
|
||||
|
||||
str_pcd_obj.MaxDatumSize = self.GetStructurePcdMaxSize(str_pcd_obj)
|
||||
Pcds[str_pcd_obj.TokenCName, str_pcd_obj.TokenSpaceGuidCName] = str_pcd_obj
|
||||
Pcds[str_pcd_obj.TokenCName, str_pcd_obj.TokenSpaceGuidCName].CustomAttribute['IsStru']=True
|
||||
|
||||
for pcdkey in Pcds:
|
||||
pcd = Pcds[pcdkey]
|
||||
@ -2680,6 +2681,7 @@ class DscBuildData(PlatformBuildClassObject):
|
||||
PcdClassObj.UserDefinedDefaultStoresFlag = True
|
||||
Pcds[PcdCName, TokenSpaceGuid] = PcdClassObj
|
||||
|
||||
Pcds[PcdCName, TokenSpaceGuid].CustomAttribute['DscPosition'] = int(Dummy4)
|
||||
if SkuName not in Pcds[PcdCName, TokenSpaceGuid].DscRawValue:
|
||||
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName] = {}
|
||||
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName][DefaultStore] = DefaultValue
|
||||
|
Reference in New Issue
Block a user