# This class is used to retrieve information stored in database and convert them\r
# into PlatformBuildClassObject form for easier use for AutoGen.\r
#\r
+from __future__ import print_function\r
+from __future__ import absolute_import\r
from Common.StringUtils import *\r
from Common.DataType import *\r
from Common.Misc import *\r
\r
if len(FileContent) == 0:\r
continue\r
- IncludedFileList = []\r
+\r
if FileContent[0] == 0xff or FileContent[0] == 0xfe:\r
- FileContent = str(FileContent, "utf-16")\r
- IncludedFileList = gIncludePattern.findall(FileContent)\r
- else:\r
- try:\r
- FileContent = str(FileContent, "utf-8")\r
- IncludedFileList = gIncludePattern.findall(FileContent)\r
- except:\r
- pass\r
+ FileContent = unicode(FileContent, "utf-16")\r
IncludedFileList = gIncludePattern.findall(FileContent)\r
\r
for Inc in IncludedFileList:\r
EdkLogger.error('build', FORMAT_INVALID, ErrStr, File=self.MetaFile, Line=LineNo,\r
ExtraData="%s.%s" % (TokenSpaceGuid, PcdCName))\r
if PcdType in (MODEL_PCD_DYNAMIC_DEFAULT, MODEL_PCD_DYNAMIC_EX_DEFAULT, MODEL_PCD_FIXED_AT_BUILD, MODEL_PCD_PATCHABLE_IN_MODULE):\r
- if self._DecPcds[PcdCName, TokenSpaceGuid].DatumType.strip() in TAB_PCD_NUMERIC_TYPES_VOID \\r
- and self._DecPcds[PcdCName, TokenSpaceGuid].DatumType.strip() != ValueList[1].strip():\r
+ if self._DecPcds[PcdCName, TokenSpaceGuid].DatumType.strip() != ValueList[1].strip():\r
EdkLogger.error('build', FORMAT_INVALID, "Pcd datumtype used in DSC file is not the same as its declaration in DEC file.", File=self.MetaFile, Line=LineNo,\r
ExtraData="%s.%s|%s" % (TokenSpaceGuid, PcdCName, Setting))\r
if (TokenSpaceGuid + '.' + PcdCName) in GlobalData.gPlatformPcds:\r
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:\r
del pcd.SkuInfoList[TAB_COMMON]\r
\r
- list(map(self.FilterSkuSettings, [Pcds[pcdkey] for pcdkey in Pcds if Pcds[pcdkey].Type in DynamicPcdType]))\r
+ map(self.FilterSkuSettings, [Pcds[pcdkey] for pcdkey in Pcds if Pcds[pcdkey].Type in DynamicPcdType])\r
return Pcds\r
\r
## Retrieve non-dynamic PCD settings\r
else:\r
PcdValueDict[PcdCName, TokenSpaceGuid] = {SkuName:(PcdValue, DatumType, MaxDatumSize)}\r
\r
- for ((PcdCName, TokenSpaceGuid), PcdSetting) in PcdValueDict.items():\r
+ for ((PcdCName, TokenSpaceGuid), PcdSetting) in PcdValueDict.iteritems():\r
if self.SkuIdMgr.SystemSkuId in PcdSetting:\r
PcdValue, DatumType, MaxDatumSize = PcdSetting[self.SkuIdMgr.SystemSkuId]\r
elif TAB_DEFAULT in PcdSetting:\r
except:\r
EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute command: %s' % Command)\r
Result = Process.communicate()\r
- return Process.returncode, Result[0].decode(encoding='utf-8', errors='ignore'), Result[1].decode(encoding='utf-8', errors='ignore')\r
+ return Process.returncode, Result[0], Result[1]\r
\r
@staticmethod\r
def IntToCString(Value, ValueSize):\r
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:\r
del pcd.SkuInfoList[TAB_COMMON]\r
\r
- list(map(self.FilterSkuSettings, Pcds.values()))\r
+ map(self.FilterSkuSettings, Pcds.values())\r
\r
return Pcds\r
\r
PcdObj.SkuInfoList[skuname].SkuId = skuid\r
PcdObj.SkuInfoList[skuname].SkuIdName = skuname\r
if PcdType in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]:\r
- PcdObj.DefaultValue = list(PcdObj.SkuInfoList.values())[0].HiiDefaultValue if self.SkuIdMgr.SkuUsageType == self.SkuIdMgr.SINGLE else PcdObj.SkuInfoList[TAB_DEFAULT].HiiDefaultValue\r
+ PcdObj.DefaultValue = PcdObj.SkuInfoList.values()[0].HiiDefaultValue if self.SkuIdMgr.SkuUsageType == self.SkuIdMgr.SINGLE else PcdObj.SkuInfoList[TAB_DEFAULT].HiiDefaultValue\r
Pcds[PcdCName, TokenSpaceGuid]= PcdObj\r
return Pcds\r
## Retrieve dynamic HII PCD settings\r
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName] = {}\r
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName][DefaultStore] = DefaultValue\r
for pcd in Pcds.values():\r
- SkuInfoObj = list(pcd.SkuInfoList.values())[0]\r
+ SkuInfoObj = pcd.SkuInfoList.values()[0]\r
pcdDecObject = self._DecPcds[pcd.TokenCName, pcd.TokenSpaceGuidCName]\r
pcd.DatumType = pcdDecObject.DatumType\r
# Only fix the value while no value provided in DSC file.\r
invalidpcd = ",".join(invalidhii)\r
EdkLogger.error('build', PCD_VARIABLE_INFO_ERROR, Message='The same HII PCD must map to the same EFI variable for all SKUs', File=self.MetaFile, ExtraData=invalidpcd)\r
\r
- list(map(self.FilterSkuSettings, Pcds.values()))\r
+ map(self.FilterSkuSettings, Pcds.values())\r
\r
return Pcds\r
\r
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName] = {}\r
Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName][TAB_DEFAULT_STORES_DEFAULT] = InitialValue\r
for pcd in Pcds.values():\r
- SkuInfoObj = list(pcd.SkuInfoList.values())[0]\r
+ SkuInfoObj = pcd.SkuInfoList.values()[0]\r
pcdDecObject = self._DecPcds[pcd.TokenCName, pcd.TokenSpaceGuidCName]\r
pcd.DatumType = pcdDecObject.DatumType\r
# Only fix the value while no value provided in DSC file.\r
del pcd.SkuInfoList[TAB_COMMON]\r
\r
\r
- list(map(self.FilterSkuSettings, Pcds.values()))\r
+ map(self.FilterSkuSettings, Pcds.values())\r
return Pcds\r
\r
## Add external modules\r