def _InitWorker(self, WorkspaceDir, ActivePlatform, Target, Toolchain, ArchList, MetaFileDb,\r
BuildConfig, ToolDefinition, FlashDefinitionFile='', Fds=None, Fvs=None, Caps=None, SkuId='', UniFlag=None,\r
Progress=None, BuildModule=None):\r
- if Fds is None:\r
- Fds = []\r
- if Fvs is None:\r
- Fvs = []\r
- if Caps is None:\r
- Caps = []\r
self.BuildDatabase = MetaFileDb\r
self.MetaFile = ActivePlatform\r
self.WorkspaceDir = WorkspaceDir\r
- self.Platform = self.BuildDatabase[self.MetaFile, 'COMMON', Target, Toolchain]\r
+ self.Platform = self.BuildDatabase[self.MetaFile, TAB_COMMON, Target, Toolchain]\r
GlobalData.gActivePlatform = self.Platform\r
self.BuildTarget = Target\r
self.ToolChain = Toolchain\r
self.TargetTxt = BuildConfig\r
self.ToolDef = ToolDefinition\r
self.FdfFile = FlashDefinitionFile\r
- self.FdTargetList = Fds\r
- self.FvTargetList = Fvs\r
- self.CapTargetList = Caps\r
+ self.FdTargetList = Fds if Fds else []\r
+ self.FvTargetList = Fvs if Fvs else []\r
+ self.CapTargetList = Caps if Caps else []\r
self.AutoGenObjectList = []\r
self._BuildDir = None\r
self._FvDir = None\r
# but the path (self.MetaFile.Path) is the real path\r
for key in self.FdfProfile.InfDict:\r
if key == 'ArchTBD':\r
- Platform_cache = {}\r
MetaFile_cache = {}\r
for Arch in self.ArchList:\r
- Platform_cache[Arch] = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]\r
+ Current_Platform_cache = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]\r
MetaFile_cache[Arch] = set()\r
- for Pkey in Platform_cache[Arch].Modules:\r
- MetaFile_cache[Arch].add(Platform_cache[Arch].Modules[Pkey].MetaFile)\r
+ for Pkey in Current_Platform_cache.Modules:\r
+ MetaFile_cache[Arch].add(Current_Platform_cache.Modules[Pkey].MetaFile)\r
for Inf in self.FdfProfile.InfDict[key]:\r
ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch)\r
for Arch in self.ArchList:\r
# Here we just need to get FILE_GUID from INF file, use 'COMMON' as ARCH attribute. and use \r
# BuildObject from one of AutoGenObjectList is enough.\r
#\r
- InfObj = self.AutoGenObjectList[0].BuildDatabase.WorkspaceDb.BuildObject[PathClassObj, 'COMMON', self.BuildTarget, self.ToolChain]\r
+ InfObj = self.AutoGenObjectList[0].BuildDatabase.WorkspaceDb.BuildObject[PathClassObj, TAB_COMMON, self.BuildTarget, self.ToolChain]\r
if not InfObj.Guid.upper() in _GuidDict.keys():\r
_GuidDict[InfObj.Guid.upper()] = FfsFile\r
else:\r
FixedAtBuildPcds = {} \r
ShareFixedAtBuildPcdsSameValue = {} \r
for Module in LibAuto._ReferenceModules: \r
- for Pcd in Module.FixedAtBuildPcds:\r
+ for Pcd in Module.FixedAtBuildPcds + LibAuto.FixedAtBuildPcds:\r
key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName)) \r
if key not in FixedAtBuildPcds:\r
ShareFixedAtBuildPcdsSameValue[key] = True\r
EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)\r
\r
NvStoreOffset = int(NvStoreOffset,16) if NvStoreOffset.upper().startswith("0X") else int(NvStoreOffset)\r
- default_skuobj = PcdNvStoreDfBuffer[0].SkuInfoList.get("DEFAULT")\r
+ default_skuobj = PcdNvStoreDfBuffer[0].SkuInfoList.get(TAB_DEFAULT)\r
maxsize = self.VariableInfo.VpdRegionSize - NvStoreOffset if self.VariableInfo.VpdRegionSize else len(default_skuobj.DefaultValue.split(","))\r
var_data = self.VariableInfo.PatchNVStoreDefaultMaxSize(maxsize)\r
\r
default_skuobj.DefaultValue = var_data\r
PcdNvStoreDfBuffer[0].DefaultValue = var_data\r
PcdNvStoreDfBuffer[0].SkuInfoList.clear()\r
- PcdNvStoreDfBuffer[0].SkuInfoList['DEFAULT'] = default_skuobj\r
+ PcdNvStoreDfBuffer[0].SkuInfoList[TAB_DEFAULT] = default_skuobj\r
PcdNvStoreDfBuffer[0].MaxDatumSize = str(len(default_skuobj.DefaultValue.split(",")))\r
\r
return OrgVpdFile\r
self._NonDynaPcdList_.remove (self._NonDynaPcdList_[Index])\r
PcdFromModule.Pending = False\r
self._NonDynaPcdList_.append (PcdFromModule)\r
- # Parse the DynamicEx PCD from the AsBuild INF module list of FDF.\r
- DscModuleList = []\r
- for ModuleInf in self.Platform.Modules.keys():\r
- DscModuleList.append (os.path.normpath(ModuleInf.Path))\r
+ DscModuleSet = {os.path.normpath(ModuleInf.Path) for ModuleInf in self.Platform.Modules}\r
# add the PCD from modules that listed in FDF but not in DSC to Database \r
for InfName in FdfModuleList:\r
- if InfName not in DscModuleList:\r
+ if InfName not in DscModuleSet:\r
InfClass = PathClass(InfName)\r
M = self.BuildDatabase[InfClass, self.Arch, self.BuildTarget, self.ToolChain]\r
# If a module INF in FDF but not in current arch's DSC module list, it must be module (either binary or source) \r
PcdKey in VpdPcdDict:\r
Pcd = VpdPcdDict[PcdKey]\r
SkuValueMap = {}\r
- DefaultSku = Pcd.SkuInfoList.get('DEFAULT')\r
+ DefaultSku = Pcd.SkuInfoList.get(TAB_DEFAULT)\r
if DefaultSku:\r
PcdValue = DefaultSku.DefaultValue\r
if PcdValue not in SkuValueMap:\r
SkuValueMap[PcdValue] = []\r
- VpdFile.Add(Pcd, 'DEFAULT',DefaultSku.VpdOffset)\r
+ VpdFile.Add(Pcd, TAB_DEFAULT,DefaultSku.VpdOffset)\r
SkuValueMap[PcdValue].append(DefaultSku)\r
\r
for (SkuName,Sku) in Pcd.SkuInfoList.items():\r
# just pick the a value to determine whether is unicode string type\r
SkuValueMap = {}\r
SkuObjList = DscPcdEntry.SkuInfoList.items()\r
- DefaultSku = DscPcdEntry.SkuInfoList.get('DEFAULT')\r
+ DefaultSku = DscPcdEntry.SkuInfoList.get(TAB_DEFAULT)\r
if DefaultSku:\r
- defaultindex = SkuObjList.index(('DEFAULT',DefaultSku))\r
+ defaultindex = SkuObjList.index((TAB_DEFAULT,DefaultSku))\r
SkuObjList[0],SkuObjList[defaultindex] = SkuObjList[defaultindex],SkuObjList[0]\r
for (SkuName,Sku) in SkuObjList:\r
Sku.VpdOffset = Sku.VpdOffset.strip() \r
DscPcdEntry.TokenValue = DecPcdEntry.TokenValue\r
DscPcdEntry.TokenSpaceGuidValue = eachDec.Guids[DecPcdEntry.TokenSpaceGuidCName]\r
# Only fix the value while no value provided in DSC file.\r
- if (Sku.DefaultValue == "" or Sku.DefaultValue==None):\r
+ if not Sku.DefaultValue:\r
DscPcdEntry.SkuInfoList[DscPcdEntry.SkuInfoList.keys()[0]].DefaultValue = DecPcdEntry.DefaultValue\r
\r
if DscPcdEntry not in self._DynamicPcdList:\r
for (SkuName,SkuId) in allskuset:\r
if type(SkuId) in (str,unicode) and eval(SkuId) == 0 or SkuId == 0:\r
continue\r
- pcd.SkuInfoList[SkuName] = copy.deepcopy(pcd.SkuInfoList['DEFAULT'])\r
+ pcd.SkuInfoList[SkuName] = copy.deepcopy(pcd.SkuInfoList[TAB_DEFAULT])\r
pcd.SkuInfoList[SkuName].SkuId = SkuId\r
self.AllPcdList = self._NonDynamicPcdList + self._DynamicPcdList\r
\r
if self.Platform.SkuName in self.Platform.SkuIds:\r
SkuName = self.Platform.SkuName\r
else:\r
- SkuName = 'DEFAULT'\r
+ SkuName = TAB_DEFAULT\r
ToPcd.SkuInfoList = {\r
SkuName : SkuInfoClass(SkuName, self.Platform.SkuIds[SkuName][0], '', '', '', '', '', ToPcd.DefaultValue)\r
}\r
if self._BinaryFileList is None:\r
self._BinaryFileList = []\r
for F in self.Module.Binaries:\r
- if F.Target not in ['COMMON', '*'] and F.Target != self.BuildTarget:\r
+ if F.Target not in [TAB_COMMON, '*'] and F.Target != self.BuildTarget:\r
continue\r
self._BinaryFileList.append(F)\r
self._ApplyBuildRule(F, F.Type)\r