from Common.BuildToolError import FILE_WRITE_FAILURE\r
from Common.BuildToolError import CODE_ERROR\r
from Common.BuildToolError import COMMAND_FAILURE\r
+from Common.BuildToolError import FORMAT_INVALID\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
from Common.MultipleWorkspace import MultipleWorkspace as mws\r
import Common.GlobalData as GlobalData\r
from Common.String import NormPath\r
from Common.DataType import *\r
import collections\r
-from Common.Expression import ValueExpressionEx\r
+from Common.Expression import *\r
\r
## Pattern to extract contents in EDK DXS files\r
gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)\r
#\r
DecDefaultValue = self.DecPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, DecType))\r
DscDefaultValue = self.DscPcdDefault.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName))\r
- DscDefaultValBak= DscDefaultValue\r
+ DscDefaultValBak = DscDefaultValue\r
DscDefaultValue = self.FdfPcdSet.get((Pcd.TokenCName, Key), DscDefaultValue)\r
- if DscDefaultValue:\r
- DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)\r
+ if DscDefaultValue != DscDefaultValBak:\r
+ try:\r
+ DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)\r
+ except BadExpression, Value:\r
+ EdkLogger.error('BuildReport', FORMAT_INVALID, "PCD Value: %s, Type: %s" %(DscDefaultValue, Pcd.DatumType))\r
+\r
InfDefaultValue = None\r
\r
PcdValue = DecDefaultValue\r
def PrintStructureInfo(self, File, Struct):\r
NewInfo = collections.OrderedDict()\r
for Key, Value in Struct.items():\r
- if Key not in NewInfo:\r
- NewInfo[Key] = Value[0]\r
+ if Value[1] and 'build command options' in Value[1]:\r
+ FileWrite(File, ' *B %-*s = %s' % (self.MaxLen + 4, '.' + Key, Value[0]))\r
else:\r
- del NewInfo[Key]\r
- NewInfo[Key] = Value[0]\r
- if NewInfo:\r
- for item in NewInfo:\r
- FileWrite(File, ' %-*s = %s' % (self.MaxLen + 4, '.' + item, NewInfo[item]))\r
+ FileWrite(File, ' %-*s = %s' % (self.MaxLen + 4, '.' + Key, Value[0]))\r
\r
def StrtoHex(self, value):\r
try:\r