# PCD cannot be referenced in macro definition\r
if self._ItemType not in [MODEL_META_DATA_DEFINE, MODEL_META_DATA_GLOBAL_DEFINE]:\r
Macros.update(self._Symbols)\r
+ if GlobalData.BuildOptionPcd:\r
+ for Item in GlobalData.BuildOptionPcd:\r
+ PcdName, TmpValue = Item.split("=")\r
+ Macros[PcdName.strip()] = TmpValue\r
return Macros\r
\r
def _PostProcess(self):\r
ValList[Index] = ValueExpression(PcdValue, self._Macros)(True)\r
except WrnExpression, Value:\r
ValList[Index] = Value.result\r
+ except:\r
+ pass\r
\r
if ValList[Index] == 'True':\r
ValList[Index] = '1'\r
if "|" not in self._CurrentLine:\r
if "<HeaderFiles>" == self._CurrentLine:\r
self._include_flag = True\r
+ self._package_flag = False\r
self._ValueList = None\r
return\r
if "<Packages>" == self._CurrentLine:\r
self._package_flag = True\r
self._ValueList = None\r
+ self._include_flag = False\r
return\r
\r
if self._include_flag:\r
self._ValueList[1] = "<HeaderFiles>_" + md5.new(self._CurrentLine).hexdigest()\r
self._ValueList[2] = self._CurrentLine\r
- self._include_flag = False\r
if self._package_flag and "}" != self._CurrentLine:\r
self._ValueList[1] = "<Packages>_" + md5.new(self._CurrentLine).hexdigest()\r
self._ValueList[2] = self._CurrentLine\r
if self._CurrentLine == "}":\r
self._package_flag = False\r
+ self._include_flag = False\r
self._ValueList = None\r
return\r
else:\r
PcdValue = ValueList[0]\r
if PcdValue:\r
try:\r
- ValueList[0] = ValueExpression(PcdValue, self._AllPcdDict)(True)\r
- except WrnExpression, Value:\r
- ValueList[0] = Value.result\r
- except BadExpression, Value:\r
- EdkLogger.error('Parser', FORMAT_INVALID, Value, File=self.MetaFile, Line=self._LineIndex + 1)\r
-\r
- if ValueList[0]:\r
- try:\r
+ self._GuidDict.update(self._AllPcdDict)\r
ValueList[0] = ValueExpressionEx(ValueList[0], ValueList[1], self._GuidDict)(True)\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, Value, ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)\r