## @file\r
# This file is used to define each component of the build database\r
#\r
-# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
# @var Phase: To store value for Phase, default is "DXE"\r
#\r
class PcdClassObject(object):\r
- def __init__(self, Name = None, Guid = None, Type = None, DatumType = None, Value = None, Token = None, MaxDatumSize = None, SkuInfoList = {}, IsOverrided = False, GuidValue = None, validateranges = [], validlists = [], expressions = []):\r
+ def __init__(self, Name = None, Guid = None, Type = None, DatumType = None, Value = None, Token = None, MaxDatumSize = None, SkuInfoList = {}, IsOverrided = False, GuidValue = None, validateranges = [], validlists = [], expressions = [], IsDsc = False):\r
self.TokenCName = Name\r
self.TokenSpaceGuidCName = Guid\r
self.TokenSpaceGuidValue = GuidValue\r
self.validateranges = validateranges\r
self.validlists = validlists\r
self.expressions = expressions\r
+ self.DscDefaultValue = None\r
+ if IsDsc:\r
+ self.DscDefaultValue = Value\r
\r
## Convert the class to a string\r
#\r
MaxDatumSize,\r
{},\r
False,\r
- None\r
- )\r
+ None,\r
+ IsDsc=True)\r
return Pcds\r
\r
## Retrieve dynamic PCD settings\r
MaxDatumSize,\r
{SkuName : SkuInfo},\r
False,\r
- None\r
- )\r
- \r
+ None,\r
+ IsDsc=True)\r
+\r
for pcd in Pcds.values():\r
pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]\r
if 'DEFAULT' not in pcd.SkuInfoList.keys() and 'COMMON' not in pcd.SkuInfoList.keys(): \r
None,\r
pcdDecObject.validateranges,\r
pcdDecObject.validlists,\r
- pcdDecObject.expressions\r
- )\r
- \r
+ pcdDecObject.expressions,\r
+ IsDsc=True)\r
\r
for pcd in Pcds.values():\r
SkuInfoObj = pcd.SkuInfoList.values()[0]\r
MaxDatumSize,\r
{SkuName : SkuInfo},\r
False,\r
- None\r
- )\r
+ None,\r
+ IsDsc=True)\r
for pcd in Pcds.values():\r
SkuInfoObj = pcd.SkuInfoList.values()[0]\r
pcdDecObject = self._DecPcds[pcd.TokenCName,pcd.TokenSpaceGuidCName]\r
for Arch in Wa.ArchList:\r
Platform = Wa.BuildDatabase[Wa.MetaFile, Arch, Wa.BuildTarget, Wa.ToolChain]\r
for (TokenCName, TokenSpaceGuidCName) in Platform.Pcds:\r
- DscDefaultValue = Platform.Pcds[(TokenCName, TokenSpaceGuidCName)].DefaultValue\r
+ DscDefaultValue = Platform.Pcds[(TokenCName, TokenSpaceGuidCName)].DscDefaultValue\r
if DscDefaultValue:\r
self.DscPcdDefault[(TokenCName, TokenSpaceGuidCName)] = DscDefaultValue\r
\r
#\r
DecDefaultValue = self.DecPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, DecType))\r
DscDefaultValue = self.DscPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName))\r
+ DscDefaultValBak= DscDefaultValue\r
DscDefaultValue = self.FdfPcdSet.get((Pcd.TokenCName, Key), DscDefaultValue)\r
InfDefaultValue = None\r
\r
else:\r
FileWrite(File, '%*s' % (self.MaxLen + 4, SkuInfo.VpdOffset))\r
\r
- if not DscMatch and DscDefaultValue != None:\r
- FileWrite(File, ' %*s = %s' % (self.MaxLen + 19, 'DSC DEFAULT', DscDefaultValue.strip()))\r
+ if not DscMatch and DscDefaultValBak != None:\r
+ FileWrite(File, ' %*s = %s' % (self.MaxLen + 19, 'DSC DEFAULT', DscDefaultValBak.strip()))\r
\r
if not InfMatch and InfDefaultValue != None:\r
FileWrite(File, ' %*s = %s' % (self.MaxLen + 19, 'INF DEFAULT', InfDefaultValue.strip()))\r