ToPcd.Type, Module, FromPcd.Type),\r
File=self.MetaFile)\r
\r
- if FromPcd.MaxDatumSize not in [None, '']:\r
+ if FromPcd.MaxDatumSize:\r
ToPcd.MaxDatumSize = FromPcd.MaxDatumSize\r
- if FromPcd.DefaultValue not in [None, '']:\r
+ if FromPcd.DefaultValue:\r
ToPcd.DefaultValue = FromPcd.DefaultValue\r
- if FromPcd.TokenValue not in [None, '']:\r
+ if FromPcd.TokenValue:\r
ToPcd.TokenValue = FromPcd.TokenValue\r
- if FromPcd.MaxDatumSize not in [None, '']:\r
- ToPcd.MaxDatumSize = FromPcd.MaxDatumSize\r
- if FromPcd.DatumType not in [None, '']:\r
+ if FromPcd.DatumType:\r
ToPcd.DatumType = FromPcd.DatumType\r
- if FromPcd.SkuInfoList not in [None, '', []]:\r
+ if FromPcd.SkuInfoList:\r
ToPcd.SkuInfoList = FromPcd.SkuInfoList\r
# Add Flexible PCD format parse\r
if ToPcd.DefaultValue:\r
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
## Create AsBuilt INF file the module\r
#\r
def CreateAsBuiltInf(self, IsOnlyCopy = False):\r
- self.OutputFile = []\r
+ self.OutputFile = set()\r
if IsOnlyCopy:\r
if GlobalData.gBinCacheDest:\r
self.CopyModuleToCache()\r
return\r
\r
# Skip the following code for modules with no source files\r
- if self.SourceFileList is None or self.SourceFileList == []:\r
+ if not self.SourceFileList:\r
return\r
\r
# Skip the following code for modules without any binary files\r
- if self.BinaryFileList <> None and self.BinaryFileList <> []:\r
+ if not self.BinaryFileList:\r
return\r
\r
### TODO: How to handles mixed source and binary modules\r
DebugDir = self.DebugDir.replace('\\', '/').strip('/')\r
for Item in self.CodaTargetList:\r
File = Item.Target.Path.replace('\\', '/').strip('/').replace(DebugDir, '').replace(OutputDir, '').strip('/')\r
- if File not in self.OutputFile:\r
- self.OutputFile.append(File)\r
+ self.OutputFile.add(File)\r
if os.path.isabs(File):\r
File = File.replace('\\', '/').strip('/').replace(OutputDir, '').strip('/')\r
if Item.Target.Ext.lower() == '.aml':\r
else:\r
AsBuiltInfDict['binary_item'] += ['BIN|' + File]\r
if self.DepexGenerated:\r
- if self.Name + '.depex' not in self.OutputFile:\r
- self.OutputFile.append(self.Name + '.depex')\r
+ self.OutputFile.add(self.Name + '.depex')\r
if self.ModuleType in ['PEIM']:\r
AsBuiltInfDict['binary_item'] += ['PEI_DEPEX|' + self.Name + '.depex']\r
if self.ModuleType in ['DXE_DRIVER', 'DXE_RUNTIME_DRIVER', 'DXE_SAL_DRIVER', 'UEFI_DRIVER']:\r
Bin = self._GenOffsetBin()\r
if Bin:\r
AsBuiltInfDict['binary_item'] += ['BIN|%s' % Bin]\r
- if Bin not in self.OutputFile:\r
- self.OutputFile.append(Bin)\r
+ self.OutputFile.add(Bin)\r
\r
for Root, Dirs, Files in os.walk(OutputDir):\r
for File in Files:\r
if File.lower().endswith('.pdb'):\r
AsBuiltInfDict['binary_item'] += ['DISPOSABLE|' + File]\r
- if File not in self.OutputFile:\r
- self.OutputFile.append(File)\r
+ self.OutputFile.add(File)\r
HeaderComments = self.Module.HeaderComments\r
StartPos = 0\r
for Index in range(len(HeaderComments)):\r