summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/Workspace/BuildClassObject.py
diff options
context:
space:
mode:
authorLiming Gao <liming.gao@intel.com>2017-12-22 20:46:15 +0800
committerLiming Gao <liming.gao@intel.com>2017-12-25 11:05:47 +0800
commit8518bf0b92a78938341a2752a0044f04336668cc (patch)
tree42cb756c581e15ff9a505c27f216d9f0331509de /BaseTools/Source/Python/Workspace/BuildClassObject.py
parent34952f493c24c02f5eba6ae86ed758d3311cddb1 (diff)
downloadedk2-8518bf0b92a78938341a2752a0044f04336668cc.tar.gz
edk2-8518bf0b92a78938341a2752a0044f04336668cc.tar.bz2
edk2-8518bf0b92a78938341a2752a0044f04336668cc.zip
BaseTools: Support Structure PCD value inherit between the different SKUs
https://bugzilla.tianocore.org/show_bug.cgi?id=543 Structure PCD field value can inherit between the different SKUIds. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Feng Bob C <bob.c.feng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Workspace/BuildClassObject.py')
-rw-r--r--BaseTools/Source/Python/Workspace/BuildClassObject.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/BaseTools/Source/Python/Workspace/BuildClassObject.py b/BaseTools/Source/Python/Workspace/BuildClassObject.py
index 6150557cfb..631c1c7b99 100644
--- a/BaseTools/Source/Python/Workspace/BuildClassObject.py
+++ b/BaseTools/Source/Python/Workspace/BuildClassObject.py
@@ -16,6 +16,7 @@ import Common.LongFilePathOs as os
from Common.Misc import sdict
from Common.Misc import RealPath2
from Common.BuildToolError import *
+from Common.DataType import *
import collections
## PcdClassObject
@@ -108,11 +109,11 @@ class PcdClassObject(object):
return hash((self.TokenCName, self.TokenSpaceGuidCName))
class StructurePcd(PcdClassObject):
- def __init__(self, StructuredPcdIncludeFile="", Packages=None, Name=None, Guid=None, Type=None, DatumType=None, Value=None, Token=None, MaxDatumSize=None, SkuInfoList={}, IsOverrided=False, GuidValue=None, validateranges=[], validlists=[], expressions=[]):
+ def __init__(self, StructuredPcdIncludeFile="", Packages=None, Name=None, Guid=None, Type=None, DatumType=None, Value=None, Token=None, MaxDatumSize=None, SkuInfoList={}, IsOverrided=False, GuidValue=None, validateranges=[], validlists=[], expressions=[],default_store = TAB_DEFAULT_STORES_DEFAULT):
super(StructurePcd, self).__init__(Name, Guid, Type, DatumType, Value, Token, MaxDatumSize, SkuInfoList, IsOverrided, GuidValue, validateranges, validlists, expressions)
self.StructuredPcdIncludeFile = StructuredPcdIncludeFile
self.PackageDecs = Packages
- self.DefaultStoreName = ['STANDARD']
+ self.DefaultStoreName = [default_store]
self.DefaultValues = collections.OrderedDict({})
self.PcdMode = None
self.SkuOverrideValues = collections.OrderedDict({})
@@ -127,13 +128,15 @@ class StructurePcd(PcdClassObject):
self.DefaultValues[FieldName] = [Value.strip(), FileName, LineNo]
return self.DefaultValues[FieldName]
- def AddOverrideValue (self, FieldName, Value, SkuName, FileName="", LineNo=0):
+ def AddOverrideValue (self, FieldName, Value, SkuName, DefaultStoreName, FileName="", LineNo=0):
if SkuName not in self.SkuOverrideValues:
self.SkuOverrideValues[SkuName] = collections.OrderedDict({})
- if FieldName in self.SkuOverrideValues[SkuName]:
- del self.SkuOverrideValues[SkuName][FieldName]
- self.SkuOverrideValues[SkuName][FieldName] = [Value.strip(), FileName, LineNo]
- return self.SkuOverrideValues[SkuName][FieldName]
+ if DefaultStoreName not in self.SkuOverrideValues[SkuName]:
+ self.SkuOverrideValues[SkuName][DefaultStoreName] = collections.OrderedDict({})
+ if FieldName in self.SkuOverrideValues[SkuName][DefaultStoreName]:
+ del self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName]
+ self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName] = [Value.strip(), FileName, LineNo]
+ return self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName]
def SetPcdMode (self, PcdMode):
self.PcdMode = PcdMode