#\r
# TODO: FFS layout, Flash, FV, PCD\r
#\r
-import os, sys, re, getopt, string, glob, xml.dom.minidom, pprint, time, copy, shelve\r
+import os, sys, re, getopt, string, glob, xml.dom.minidom, pprint, time, copy, shelve, pickle\r
from XmlRoutines import *\r
import FrameworkElement\r
import BuildConfig\r
def Parse(self):\r
dom = self._Root\r
self.Name = XmlAttribute(dom, "Name")\r
- self.Path = os.path.normpath(XmlElementData(XmlElement(dom, "/LibraryClass/IncludeHeader")))\r
+ self.Path = os.path.normpath(XmlElementData(XmlNode(dom, "/LibraryClass/IncludeHeader")))\r
self.Dir = os.path.dirname(self.Path)\r
\r
attribute = XmlAttribute(dom, "RecommendedInstanceGuid")\r
def Parse(self):\r
dom = self._Root\r
\r
- self.Name = XmlElementData(XmlElement(dom, "/LibraryClass/Keyword"))\r
+ self.Name = XmlElementData(XmlNode(dom, "/LibraryClass/Keyword"))\r
self.Usage = self.GetUsage(dom)\r
self.Features = self.GetFeatureList(dom)\r
self.Archs = self.GetArchList(dom)\r
self.FavoriteIntance = FrameworkElement.Module()\r
self.FavoriteIntance.Version = attribute\r
\r
- def Postprocess(self):\r
- self.Interface = self._Workspace.GetLibraryInterface(self.Name)\r
-\r
class SourceFile(FrameworkElement.SourceFile, SurfaceAreaElement):\r
def __init__(self, workspace, module, dom):\r
FrameworkElement.SourceFile.__init__(self)\r
\r
def Parse(self):\r
dom = self._Root\r
- self.CName = XmlElementData(XmlElement(dom, "/Protocol/ProtocolCName"))\r
+ self.CName = XmlElementData(XmlNode(dom, "/Protocol/ProtocolCName"))\r
self.Usage = self.GetUsage(dom)\r
self.Archs = self.GetArchList(dom)\r
self.Features = self.GetFeatureList(dom)\r
def Parse(self):\r
dom = self._Root\r
\r
- self.CName = XmlElementData(XmlElement(dom, "/ProtocolNotify/ProtocolCName"))\r
+ self.CName = XmlElementData(XmlNode(dom, "/ProtocolNotify/ProtocolCName"))\r
self.Usage = self.GetUsage(dom)\r
self.Archs = self.GetArchList(dom)\r
self.Features = self.GetFeatureList(dom)\r
\r
def Parse(self):\r
dom = self._Root\r
- self.CName = XmlElementData(XmlElement(dom, "/Ppi/PpiCName"))\r
+ self.CName = XmlElementData(XmlNode(dom, "/Ppi/PpiCName"))\r
self.Usage = self.GetUsage(dom)\r
self.Archs = self.GetArchList(dom)\r
self.Features = self.GetFeatureList(dom)\r
\r
def Parse(self):\r
dom = self._Root\r
- self.CName = XmlElementData(XmlElement(dom, "/PpiNotify/PpiCName"))\r
+ self.CName = XmlElementData(XmlNode(dom, "/PpiNotify/PpiCName"))\r
self.Usage = self.GetUsage(dom)\r
self.Archs = self.GetArchList(dom)\r
self.Features = self.GetFeatureList(dom)\r
\r
def Parse(self):\r
dom = self._Root\r
- self.CName = XmlElementData(XmlElement(dom, "/GuidCNames/GuidCName"))\r
+ self.CName = XmlElementData(XmlNode(dom, "/GuidCNames/GuidCName"))\r
self.Usage = self.GetUsage(dom)\r
self.Archs = self.GetArchList(dom)\r
self.Features = self.GetFeatureList(dom)\r
self.Archs = self.GetArchList(dom)\r
self.Features = self.GetFeatureList(dom)\r
\r
- extern = XmlElement(dom, "/Extern/ModuleEntryPoint")\r
+ extern = XmlNode(dom, "/Extern/ModuleEntryPoint")\r
if extern is not None and extern is not '':\r
self.ModuleEntryPoints.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/ModuleUnloadImage")\r
+ extern = XmlNode(dom, "/Extern/ModuleUnloadImage")\r
if extern is not None and extern is not '':\r
self.ModuleUnloadImages.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/Constructor")\r
+ extern = XmlNode(dom, "/Extern/Constructor")\r
if extern is not None and extern is not '':\r
self.Constructors.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/Destructor")\r
+ extern = XmlNode(dom, "/Extern/Destructor")\r
if extern is not None and extern is not '':\r
self.Destructors.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/DriverBinding")\r
+ extern = XmlNode(dom, "/Extern/DriverBinding")\r
if extern is not None and extern is not '':\r
self.DriverBindings.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/ComponentName")\r
+ extern = XmlNode(dom, "/Extern/ComponentName")\r
if extern is not None and extern is not '':\r
self.ComponentNames.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/DriverConfig")\r
+ extern = XmlNode(dom, "/Extern/DriverConfig")\r
if extern is not None and extern is not '':\r
self.DriverConfigs.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/DriverDiag")\r
+ extern = XmlNode(dom, "/Extern/DriverDiag")\r
if extern is not None and extern is not '':\r
self.DriverDiags.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/SetVirtualAddressMapCallBacks")\r
+ extern = XmlNode(dom, "/Extern/SetVirtualAddressMapCallBacks")\r
if extern is not None and extern is not '':\r
self.SetVirtualAddressMapCallBacks.append(XmlElementData(extern))\r
\r
- extern = XmlElement(dom, "/Extern/ExitBootServicesCallBack")\r
+ extern = XmlNode(dom, "/Extern/ExitBootServicesCallBack")\r
if extern is not None and extern is not '':\r
self.ExitBootServicesCallBacks.append(XmlElementData(extern))\r
\r
\r
def Parse(self):\r
dom = self._Root\r
- self.Path = os.path.normpath(XmlElementData(XmlElement(dom, "/IndustryStdHeader/IncludeHeader")))\r
+ self.Path = os.path.normpath(XmlElementData(XmlNode(dom, "/IndustryStdHeader/IncludeHeader")))\r
self.Dir = os.path.dirname(self.Path)\r
self.Archs = self.GetArchList(dom)\r
self.ModuleTypes = self.GetModuleTypeList(dom)\r
\r
def Parse(self):\r
dom = self._Root\r
- self.CName = XmlElementData(XmlElement(dom, "/Entry/C_Name"))\r
- self.GuidValue = XmlElementData(XmlElement(dom, "/Entry/GuidValue")).upper()\r
+ self.CName = XmlElementData(XmlNode(dom, "/Entry/C_Name"))\r
+ self.GuidValue = XmlElementData(XmlNode(dom, "/Entry/GuidValue")).upper()\r
self.Name = XmlAttribute(dom, "Name")\r
self.Types = self.GetGuidTypeList(dom)\r
self.Archs = self.GetArchList(dom)\r
\r
def Parse(self):\r
dom = self._Root\r
- self.Types = XmlElementData(XmlElement(dom, "/PcdEntry/ValidUsage")).split()\r
- self.CName = XmlElementData(XmlElement(dom, "/PcdEntry/C_Name"))\r
- self.Token = XmlElementData(XmlElement(dom, "/PcdEntry/Token"))\r
- self.TokenSpace = XmlElementData(XmlElement(dom, "/PcdEntry/TokenSpaceGuidCName"))\r
- self.DatumType = XmlElementData(XmlElement(dom, "/PcdEntry/DatumType"))\r
- self.Default = XmlElementData(XmlElement(dom, "/PcdEntry/DefaultValue"))\r
+ self.Types = XmlElementData(XmlNode(dom, "/PcdEntry/ValidUsage")).split()\r
+ self.CName = XmlElementData(XmlNode(dom, "/PcdEntry/C_Name"))\r
+ self.Token = XmlElementData(XmlNode(dom, "/PcdEntry/Token"))\r
+ self.TokenSpace = XmlElementData(XmlNode(dom, "/PcdEntry/TokenSpaceGuidCName"))\r
+ self.DatumType = XmlElementData(XmlNode(dom, "/PcdEntry/DatumType"))\r
+ self.Default = XmlElementData(XmlNode(dom, "/PcdEntry/DefaultValue"))\r
self.Archs = self.GetArchList(dom)\r
self.ModuleTypes= self.GetModuleTypeList(dom)\r
\r
for lib in libraryList:\r
self.Libraries.append(LibraryInstance(self._Workspace, self, lib))\r
\r
- dom = XmlElement(dom, "/ModuleSA/ModuleSaBuildOptions")\r
- self.FvBindings = self.GetFvBindingList(XmlElement(dom, "/ModuleSaBuildOptions/FvBinding"))\r
- self.FfsLayouts = XmlElementData(XmlElement(dom, "/ModuleSaBuildOptions/FfsFormatKey")).split()\r
- self.BuildOptions = self.GetBuildOptionList(XmlElement(dom, "/ModuleSaBuildOptions/Options"))\r
+ dom = XmlNode(dom, "/ModuleSA/ModuleSaBuildOptions")\r
+ self.FvBindings = self.GetFvBindingList(XmlNode(dom, "/ModuleSaBuildOptions/FvBinding"))\r
+ self.FfsLayouts = XmlElementData(XmlNode(dom, "/ModuleSaBuildOptions/FfsFormatKey")).split()\r
+ self.BuildOptions = self.GetBuildOptionList(XmlNode(dom, "/ModuleSaBuildOptions/Options"))\r
\r
def Postprocess(self):\r
self.Module = self._Workspace.GetModule(self.GuidValue, self.Version,\r
SurfaceAreaElement.__init__(self, workspace, package)\r
\r
def _MsaHeader(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.Name = XmlElementData(XmlElement(dom, "/MsaHeader/ModuleName"))\r
- self.Type = XmlElementData(XmlElement(dom, "/MsaHeader/ModuleType"))\r
- self.GuidValue = XmlElementData(XmlElement(dom, "/MsaHeader/GuidValue")).upper()\r
- self.Version = XmlElementData(XmlElement(dom, "/MsaHeader/Version"))\r
+ self.Name = XmlElementData(XmlNode(dom, "/MsaHeader/ModuleName"))\r
+ self.Type = XmlElementData(XmlNode(dom, "/MsaHeader/ModuleType"))\r
+ self.GuidValue = XmlElementData(XmlNode(dom, "/MsaHeader/GuidValue")).upper()\r
+ self.Version = XmlElementData(XmlNode(dom, "/MsaHeader/Version"))\r
\r
def _ModuleDefinitions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.Archs = XmlElementData(XmlElement(dom, "/ModuleDefinitions/SupportedArchitectures")).split()\r
- self.IsBinary = self.GetBoolean(XmlElement(dom, "/ModuleDefinitions/BinaryModule"))\r
- self.BaseName = XmlElementData(XmlElement(dom, "/ModuleDefinitions/OutputFileBasename"))\r
+ self.Archs = XmlElementData(XmlNode(dom, "/ModuleDefinitions/SupportedArchitectures")).split()\r
+ self.IsBinary = self.GetBoolean(XmlNode(dom, "/ModuleDefinitions/BinaryModule"))\r
+ self.BaseName = XmlElementData(XmlNode(dom, "/ModuleDefinitions/OutputFileBasename"))\r
\r
def _LibraryClassDefinitions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
lcList = []\r
for lc in XmlList(dom, "/LibraryClassDefinitions/LibraryClass"):\r
self._Elements["LibraryClassDefinitions"] = lcList\r
\r
def _SourceFiles(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
srcList = []\r
for f in XmlList(dom, "/SourceFiles/Filename"):\r
self._Elements["SourceFiles"] = srcList\r
\r
def _NonProcessedFiles(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
for f in XmlList(dom, "/NonProcessedFiles/Filename"):\r
self.NonProcessedFiles.append(SourceFile(self._Workspace, self, f))\r
\r
def _PackageDependencies(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
pdList = []\r
for pkg in XmlList(dom, "/PackageDependencies/Package"):\r
self._Elements["PackageDependencies"] = pdList\r
\r
def _Protocols(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
protocolList = []\r
self._Elements["Protocols"] = protocolList\r
\r
def _Ppis(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
ppiList = []\r
self._Elements["PPIs"] = ppiList\r
\r
def _Guids(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
guidList = []\r
for g in XmlList(dom, "/Guids/GuidCNames"):\r
self._Elements["Guids"] = guidList\r
\r
def _Externs(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.PcdIsDriver = self.GetBoolean(XmlElement(dom, "/Externs/PcdIsDriver"))\r
- self.NeedsFlashMap_h = self.GetBoolean(XmlElement(dom, "/Externs/TianoR8FlashMap_h"))\r
+ self.PcdIsDriver = self.GetBoolean(XmlNode(dom, "/Externs/PcdIsDriver"))\r
+ self.NeedsFlashMap_h = self.GetBoolean(XmlNode(dom, "/Externs/TianoR8FlashMap_h"))\r
\r
externList = []\r
specs = FrameworkElement.Extern()\r
self._Elements["Externs"] = externList\r
\r
def _ModuleBuildOptions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.BuildOptions = self.GetBuildOptionList(XmlElement(dom, "/ModuleBuildOptions/Options"))\r
+ self.BuildOptions = self.GetBuildOptionList(XmlNode(dom, "/ModuleBuildOptions/Options"))\r
\r
def _UserExtensions(self, xpath):\r
domList = XmlList(self._Root, xpath)\r
# resolve library class\r
if self._Elements.has_key("LibraryClassDefinitions"):\r
for lc in self._Elements["LibraryClassDefinitions"]:\r
- lc.Interface = self._Workspace.GetLibraryInterface(lc.Name)\r
+ lc.Interface = self.GetLibraryInterface(lc.Name)\r
if "ALWAYS_PRODUCED" in lc.Usage:\r
self.IsLibrary = True\r
lc.Interface.Instances.append(self)\r
if arch not in self.Externs:\r
self.Externs[arch] = []\r
self.Externs[arch].append(extern)\r
+ \r
+ def GetLibraryInterface(self, name):\r
+ if name in self.Package.LibraryInterfaces:\r
+ return self.Package.LibraryInterfaces[name]\r
+ for pd in self._Elements["PackageDependencies"]:\r
+ if name in pd.Package.LibraryInterfaces:\r
+ return pd.Package.LibraryInterfaces[name]\r
+ return ""\r
## def SetupEnvironment(self):\r
## self.Environment["MODULE"] = self.Name\r
## self.Environment["MODULE_GUID"] = self.GuidValue\r
self.Postprocess()\r
\r
def _FdbHeader(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.Name = XmlElementData(XmlElement(dom, "/FdbHeader/DatabaseName"))\r
- self.GuidValue = XmlElementData(XmlElement(dom, "/FdbHeader/GuidValue")).upper()\r
- self.Version = XmlElementData(XmlElement(dom, "/FdbHeader/Version"))\r
+ self.Name = XmlElementData(XmlNode(dom, "/FdbHeader/DatabaseName"))\r
+ self.GuidValue = XmlElementData(XmlNode(dom, "/FdbHeader/GuidValue")).upper()\r
+ self.Version = XmlElementData(XmlNode(dom, "/FdbHeader/Version"))\r
\r
def _PackageList(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
fileList = XmlList(dom, "/PackageList/Filename")\r
if len(self._Elements["PlatformList"]) > 0:\r
return\r
\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
fileList = XmlList(dom, "/PlatformList/Filename")\r
self._Elements["PlatformList"] = platforms\r
\r
def _FarList(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
fileList = XmlList(dom, "/FarList/Filename")\r
return platform\r
return ""\r
\r
- def GetLibraryInterface(self, name):\r
+ def GetLibraryInterface(self, name, package):\r
if name not in self.LibraryInterfaceXref["NAME"]:\r
return ""\r
- return self.LibraryInterfaceXref["NAME"][name]\r
+ liList = self.LibraryInterfaceXref["NAME"][name]\r
+ for li in liList:\r
+ if li.Package == package:\r
+ return li\r
+ return ""\r
\r
def SubPath(self, *relativePathList):\r
return os.path.normpath(os.path.join(self.Path, *relativePathList))\r
## library class name -> library class object\r
##\r
for lcname in p.LibraryInterfaces:\r
- if lcname in self.LibraryInterfaceXref["NAME"]:\r
- raise Exception("Duplicate library class: %s in package %s" % (lcname, name))\r
+ if lcname not in self.LibraryInterfaceXref["NAME"]:\r
+ # raise Exception("Duplicate library class: %s in package %s" % (lcname, name))\r
+ self.LibraryInterfaceXref["NAME"][lcname] = []\r
lcInterface = p.LibraryInterfaces[lcname]\r
- self.LibraryInterfaceXref["NAME"][lcname] = lcInterface\r
+ self.LibraryInterfaceXref["NAME"][lcname].append(lcInterface)\r
\r
- if lcInterface not in self.LibraryInterfaceXref["PATH"]:\r
- self.LibraryInterfaceXref["PATH"][lcInterface] = []\r
- self.LibraryInterfaceXref["PATH"][lcInterface].append(lcname)\r
+ lcHeader = p.SubPath(lcInterface.Path)\r
+ if lcHeader not in self.LibraryInterfaceXref["PATH"]:\r
+ # raise Exception("Duplicate library class interface: %s in package %s" % (lcInterface, name))\r
+ self.LibraryInterfaceXref["PATH"][lcHeader] = []\r
+ self.LibraryInterfaceXref["PATH"][lcHeader].append(lcInterface)\r
\r
##\r
## setup package cross reference as nest-dict\r
if guid not in moduleGuidIndex:\r
moduleGuidIndex[guid] = {}\r
else:\r
- print "! Duplicate module GUID found:", guid, path\r
+ print "! Duplicate module GUID found:", guid, p.SubPath(path)\r
+ dm = moduleGuidIndex[guid].values()[0][0]\r
+ print " ", dm.GuidValue,\\r
+ dm.Package.SubPath(dm.Path)\r
\r
if version not in moduleGuidIndex[guid]:\r
moduleGuidIndex[guid][version] = []\r
SurfaceAreaElement.__init__(self, workspace, workspace, None, True, True)\r
\r
def _SpdHeader(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
- self.Name = XmlElementData(XmlElement(dom, "/SpdHeader/PackageName"))\r
- self.GuidValue = XmlElementData(XmlElement(dom, "/SpdHeader/GuidValue")).upper()\r
- self.Version = XmlElementData(XmlElement(dom, "/SpdHeader/Version"))\r
+ dom = XmlNode(self._Root, xpath)\r
+ self.Name = XmlElementData(XmlNode(dom, "/SpdHeader/PackageName"))\r
+ self.GuidValue = XmlElementData(XmlNode(dom, "/SpdHeader/GuidValue")).upper()\r
+ self.Version = XmlElementData(XmlNode(dom, "/SpdHeader/Version"))\r
\r
def _PackageDefinitions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
- self.ReadOnly = XmlElementData(XmlElement(dom, "/PackageDefinitions/ReadOnly"))\r
- self.Repackage = XmlElementData(XmlElement(dom, "/PackageDefinitions/RePackage"))\r
+ dom = XmlNode(self._Root, xpath)\r
+ self.ReadOnly = XmlElementData(XmlNode(dom, "/PackageDefinitions/ReadOnly"))\r
+ self.Repackage = XmlElementData(XmlNode(dom, "/PackageDefinitions/RePackage"))\r
\r
def _LibraryClassDeclarations(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
lcdList = XmlList(dom, "/LibraryClassDeclarations/LibraryClass")\r
lcds = []\r
for lc in lcdList:\r
self._Elements["LibraryClassDeclarations"] = lcds\r
\r
def _IndustryStdIncludes(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
headerList = XmlList(dom, "/IndustryStdIncludes/IndustryStdHeader")\r
headers = []\r
for h in headerList:\r
self._Elements["IndustryStdIncludes"] = headers\r
\r
def _MsaFiles(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
msaFileList = XmlList(dom, "/MsaFiles/Filename")\r
msaFiles = []\r
for msa in msaFileList:\r
self._Elements["MsaFiles"] = msaFiles\r
\r
def _PackageHeaders(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
headerList = XmlList(dom, "/PackageHeaders/IncludePkgHeader")\r
headers = []\r
for h in headerList:\r
self._Elements["PackageHeaders"] = headers\r
\r
def _GuidDeclarations(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
guidList = XmlList(dom, "/GuidDeclarations/Entry")\r
guids = []\r
for guid in guidList:\r
self._Elements["GuidDeclarations"] = guids\r
\r
def _ProtocolDeclarations(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
protocolList = XmlList(dom, "/ProtocolDeclarations/Entry")\r
protocols = []\r
for p in protocolList:\r
self._Elements["ProtocolDeclarations"] = protocols\r
\r
def _PpiDeclarations(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
ppiList = XmlList(dom, "/PpiDeclarations/Entry")\r
ppis = []\r
for p in ppiList:\r
self._Elements["PpiDeclarations"] = ppis\r
\r
def _PcdDeclarations(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
pcdList = XmlList(dom, "/PcdDeclarations/PcdEntry")\r
pcds = []\r
for p in pcdList:\r
SurfaceAreaElement.__init__(self, workspace)\r
\r
def _PlatformHeader(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.Name = XmlElementData(XmlElement(dom, "/PlatformHeader/PlatformName"))\r
- self.GuidValue = XmlElementData(XmlElement(dom, "/PlatformHeader/GuidValue")).upper()\r
- self.Version = XmlElementData(XmlElement(dom, "/PlatformHeader/Version"))\r
+ self.Name = XmlElementData(XmlNode(dom, "/PlatformHeader/PlatformName"))\r
+ self.GuidValue = XmlElementData(XmlNode(dom, "/PlatformHeader/GuidValue")).upper()\r
+ self.Version = XmlElementData(XmlNode(dom, "/PlatformHeader/Version"))\r
\r
def _PlatformDefinitions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.Archs = XmlElementData(XmlElement(dom, "/PlatformDefinitions/SupportedArchitectures")).split()\r
+ self.Archs = XmlElementData(XmlNode(dom, "/PlatformDefinitions/SupportedArchitectures")).split()\r
if self.Archs == []:\r
raise Exception("No ARCH specified in platform " + self.Path)\r
- self.Targets = XmlElementData(XmlElement(dom, "/PlatformDefinitions/BuildTargets")).split()\r
- self.OutputPath = os.path.normpath(XmlElementData(XmlElement(dom, "/PlatformDefinitions/OutputDirectory")))\r
+ self.Targets = XmlElementData(XmlNode(dom, "/PlatformDefinitions/BuildTargets")).split()\r
+ self.OutputPath = os.path.normpath(XmlElementData(XmlNode(dom, "/PlatformDefinitions/OutputDirectory")))\r
\r
def _Flash(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
def _FrameworkModules(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
moduleList = XmlList(dom, "/FrameworkModules/ModuleSA")\r
modules = []\r
self._Elements["FrameworkModules"] = modules\r
\r
def _DynamicPcdBuildDefinitions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
\r
def _BuildOptions(self, xpath):\r
- dom = XmlElement(self._Root, xpath)\r
+ dom = XmlNode(self._Root, xpath)\r
if dom == '': return\r
- self.BuildOptions = self.GetBuildOptionList(XmlElement(dom, "/BuildOptions/Options"))\r
+ self.BuildOptions = self.GetBuildOptionList(XmlNode(dom, "/BuildOptions/Options"))\r
# print self.BuildOptions\r
\r
def _UserExtensions(self, xpath):\r
print "\n"\r
print "\nLibrary Classes:"\r
for name in ws.LibraryInterfaceXref["NAME"]:\r
- lc = ws.LibraryInterfaceXref["NAME"][name]\r
- pkgPath = os.path.dirname(lc.Package.Path)\r
- print "\n [%s] <%s>" % (lc.Name, pkgPath + os.path.sep + lc.Path)\r
+ lcList = ws.LibraryInterfaceXref["NAME"][name]\r
+ for lc in lcList:\r
+ pkgPath = os.path.dirname(lc.Package.Path)\r
+ print "\n [%s] <%s>" % (lc.Name, pkgPath + os.path.sep + lc.Path)\r
\r
- print " Produced By:"\r
- for li in lc.Instances:\r
- print " %-40s <%s>" % (li.Name+"-"+li.Version, li.Package.SubPath(li.Path))\r
+ print " Produced By:"\r
+ for li in lc.Instances:\r
+ print " %-40s <%s>" % (li.Name+"-"+li.Version, li.Package.SubPath(li.Path))\r
\r
- print " Consumed By:"\r
- for li in lc.Consumers:\r
- print " %-40s <%s>" % (li.Name+"-"+li.Version, li.Package.SubPath(li.Path))\r
+ print " Consumed By:"\r
+ for li in lc.Consumers:\r
+ print " %-40s <%s>" % (li.Name+"-"+li.Version, li.Package.SubPath(li.Path))\r
\r
print "\nActive Platform:"\r
for arch in ws.ActivePlatform.Libraries:\r
if __name__ == "__main__":\r
# os.environ["WORKSPACE"]\r
workspacePath = os.getenv("WORKSPACE", os.getcwd())\r
+ workspacePath = "C:\\home\\src\\R9\\pbuild"\r
saFile = ""\r
if len(sys.argv) <= 1:\r
saFile = os.path.join(workspacePath, "Tools/Conf/FrameworkDatabase.db")\r
\r
startTime = time.clock()\r
sa = Workspace(workspacePath, [], [])\r
-## dbak = None\r
-## if os.path.exists("workspace.bak"):\r
-## dbak = shelve.open("workspace.bak", protocol=2)\r
-## sa = dbak.db\r
-## dbak.close()\r
-## else:\r
-## sa = FrameworkDatabase(saFile)\r
-## dbak = shelve.open("workspace.bak", protocol=2)\r
-## dbak.db = sa\r
-## dbak.close()\r
# sa = PackageSurfaceArea(saFile)\r
# sa = PlatformSurfaceArea(saFile)\r
# sa = ModuleSurfaceArea(saFile)\r