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.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
# apply SKU and inject PCDs from Flash Definition file\r
for Arch in self.ArchList:\r
Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]\r
-\r
+ PlatformPcds = Platform.Pcds\r
+ self._GuidDict = Platform._GuidDict\r
SourcePcdDict = {'DynamicEx':set(), 'PatchableInModule':set(),'Dynamic':set(),'FixedAtBuild':set()}\r
BinaryPcdDict = {'DynamicEx':set(), 'PatchableInModule':set()}\r
SourcePcdDict_Keys = SourcePcdDict.keys()\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
\r
self.Workspace = Workspace\r
self.WorkspaceDir = Workspace.WorkspaceDir\r
-\r
+ self._GuidDict = Workspace._GuidDict\r
self.MetaFile = ModuleFile\r
self.PlatformInfo = PlatformAutoGen(Workspace, PlatformFile, Target, Toolchain, Arch)\r
\r