AllTools = set(ModuleOptions.keys() + PlatformOptions.keys() +\r
PlatformModuleOptions.keys() + ModuleTypeOptions.keys() +\r
self.ToolDefinition.keys())\r
- BuildOptions = {}\r
+ BuildOptions = defaultdict(lambda: defaultdict(str))\r
for Tool in AllTools:\r
- if Tool not in BuildOptions:\r
- BuildOptions[Tool] = {}\r
-\r
for Options in [self.ToolDefinition, ModuleOptions, PlatformOptions, ModuleTypeOptions, PlatformModuleOptions]:\r
if Tool not in Options:\r
continue\r
for Attr in Options[Tool]:\r
- Value = Options[Tool][Attr]\r
#\r
# Do not generate it in Makefile\r
#\r
if Attr == TAB_TOD_DEFINES_BUILDRULEORDER:\r
continue\r
- if Attr not in BuildOptions[Tool]:\r
- BuildOptions[Tool][Attr] = ""\r
+ Value = Options[Tool][Attr]\r
# check if override is indicated\r
if Value.startswith('='):\r
- ToolPath = Value[1:]\r
- ToolPath = mws.handleWsMacro(ToolPath)\r
- BuildOptions[Tool][Attr] = ToolPath\r
+ BuildOptions[Tool][Attr] = mws.handleWsMacro(Value[1:])\r
else:\r
- Value = mws.handleWsMacro(Value)\r
if Attr != 'PATH':\r
- BuildOptions[Tool][Attr] += " " + Value\r
+ BuildOptions[Tool][Attr] += " " + mws.handleWsMacro(Value)\r
else:\r
- BuildOptions[Tool][Attr] = Value\r
+ BuildOptions[Tool][Attr] = mws.handleWsMacro(Value)\r
+\r
if Module.AutoGenVersion < 0x00010005 and self.Workspace.UniFlag is not None:\r
#\r
# Override UNI flag only for EDK module.\r
#\r
- if 'BUILD' not in BuildOptions:\r
- BuildOptions['BUILD'] = {}\r
BuildOptions['BUILD']['FLAGS'] = self.Workspace.UniFlag\r
return BuildOptions, BuildRuleOrder\r
\r
if not self.SourceFileList:\r
return []\r
\r
- NameGuids = []\r
+ NameGuids = set()\r
for SrcFile in self.SourceFileList:\r
if SrcFile.Ext.lower() != '.vfr':\r
continue\r
if not Guid:\r
break\r
NameArray = ConvertStringToByteArray('L"' + Name.group(1) + '"')\r
- NameGuids.append((NameArray, GuidStructureStringToGuidString(Guid.group(1))))\r
+ NameGuids.add((NameArray, GuidStructureStringToGuidString(Guid.group(1))))\r
Pos = Content.find('efivarstore', Name.end())\r
if not NameGuids:\r
return []\r
VfrGuid = [0xb4, 0x7c, 0xbc, 0xd0, 0x47, 0x6a, 0x5f, 0x49, 0xaa, 0x11, 0x71, 0x7, 0x46, 0xda, 0x6, 0xa2]\r
VfrGuid = [chr(ItemGuid) for ItemGuid in VfrGuid]\r
fStringIO.write(''.join(VfrGuid)) \r
- type (Item[1]) \r
VfrValue = pack ('Q', int (Item[1], 16))\r
fStringIO.write (VfrValue)\r
#\r
PcdItem = PcdComments + '\n ' + PcdItem\r
AsBuiltInfDict['patchablepcd_item'].append(PcdItem)\r
\r
- HiiPcds = []\r
+ HiiPcds = set()\r
for Pcd in Pcds + VfrPcds:\r
PcdComments = ''\r
PcdCommentList = []\r
#\r
if (SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in HiiPcds:\r
continue\r
- else:\r
- HiiPcds.append((SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName))\r
+ HiiPcds.add((SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName))\r
if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in self._PcdComments:\r
PcdCommentList = self._PcdComments[Pcd.TokenSpaceGuidCName, Pcd.TokenCName][:]\r
if HiiInfo:\r