import os\r
import pickle\r
from pickle import HIGHEST_PROTOCOL\r
+from Common import EdkLogger\r
\r
class PCD_DATA():\r
def __init__(self,TokenCName,TokenSpaceGuidCName,Type,DatumType,SkuInfoList,DefaultValue,\r
def __init__(self, BuildDir=None):\r
self.data_container = {}\r
self.BuildDir = BuildDir\r
+ self.dump_file = ""\r
\r
class MemoryDataPipe(DataPipe):\r
\r
return self.data_container.get(key)\r
\r
def dump(self,file_path):\r
+ self.dump_file = file_path\r
with open(file_path,'wb') as fd:\r
pickle.dump(self.data_container,fd,pickle.HIGHEST_PROTOCOL)\r
\r
for m in PlatformInfo.Platform.Modules:\r
m_pcds = PlatformInfo.Platform.Modules[m].Pcds\r
if m_pcds:\r
- ModulePcds[(m.File,m.Root)] = [PCD_DATA(\r
+ ModulePcds[(m.File,m.Root,m.Arch)] = [PCD_DATA(\r
pcd.TokenCName,pcd.TokenSpaceGuidCName,pcd.Type,\r
pcd.DatumType,pcd.SkuInfoList,pcd.DefaultValue,\r
pcd.MaxDatumSize,pcd.UserDefinedDefaultStoresFlag,pcd.validateranges,\r
\r
#Module's Library Instance\r
ModuleLibs = {}\r
+ libModules = {}\r
for m in PlatformInfo.Platform.Modules:\r
module_obj = BuildDB.BuildObject[m,PlatformInfo.Arch,PlatformInfo.BuildTarget,PlatformInfo.ToolChain]\r
Libs = GetModuleLibInstances(module_obj, PlatformInfo.Platform, BuildDB.BuildObject, PlatformInfo.Arch,PlatformInfo.BuildTarget,PlatformInfo.ToolChain)\r
- ModuleLibs[(m.File,m.Root,module_obj.Arch)] = [(l.MetaFile.File,l.MetaFile.Root,l.Arch) for l in Libs]\r
+ for lib in Libs:\r
+ try:\r
+ libModules[(lib.MetaFile.File,lib.MetaFile.Root,lib.Arch,lib.MetaFile.Path)].append((m.File,m.Root,module_obj.Arch,m.Path))\r
+ except:\r
+ libModules[(lib.MetaFile.File,lib.MetaFile.Root,lib.Arch,lib.MetaFile.Path)] = [(m.File,m.Root,module_obj.Arch,m.Path)]\r
+ ModuleLibs[(m.File,m.Root,module_obj.Arch,m.Path)] = [(l.MetaFile.File,l.MetaFile.Root,l.Arch,l.MetaFile.Path) for l in Libs]\r
self.DataContainer = {"DEPS":ModuleLibs}\r
+ self.DataContainer = {"REFS":libModules}\r
\r
#Platform BuildOptions\r
\r
\r
self.DataContainer = {"GuidDict": PlatformInfo.Platform._GuidDict}\r
\r
+ self.DataContainer = {"DatabasePath":GlobalData.gDatabasePath}\r
self.DataContainer = {"FdfParser": True if GlobalData.gFdfParser else False}\r
\r
+ self.DataContainer = {"LogLevel": EdkLogger.GetLevel()}\r
+ self.DataContainer = {"LogFile": GlobalData.gOptions.LogFile if GlobalData.gOptions.LogFile is not None else ""}\r