import datetime\r
import hashlib\r
from GenVar import VariableMgr,var_info\r
+from collections import OrderedDict\r
\r
## Regular expression for splitting Dependency Expression string into tokens\r
gDepexTokenPattern = re.compile("(\(|\)|\w+| \S+\.inf)")\r
]\r
\r
# This dict store PCDs which are not used by any modules with specified arches\r
- UnusedPcd = sdict()\r
+ UnusedPcd = OrderedDict()\r
for Pa in self.AutoGenObjectList:\r
# Key of DSC's Pcds dictionary is PcdCName, TokenSpaceGuid\r
for Pcd in Pa.Platform.Pcds:\r
## Generate Token Number for all PCD\r
def _GetPcdTokenNumbers(self):\r
if self._PcdTokenNumber is None:\r
- self._PcdTokenNumber = sdict()\r
+ self._PcdTokenNumber = OrderedDict()\r
TokenNumber = 1\r
#\r
# Make the Dynamic and DynamicEx PCD use within different TokenNumber area. \r
# EdkII module\r
LibraryConsumerList = [Module]\r
Constructor = []\r
- ConsumedByList = sdict()\r
- LibraryInstance = sdict()\r
+ ConsumedByList = OrderedDict()\r
+ LibraryInstance = OrderedDict()\r
\r
EdkLogger.verbose("")\r
EdkLogger.verbose("Library instances of module [%s] [%s]:" % (str(Module), self.Arch))\r
self._DerivedPackageList = None\r
self._ModulePcdList = None\r
self._LibraryPcdList = None\r
- self._PcdComments = sdict()\r
+ self._PcdComments = OrderedDict()\r
self._GuidList = None\r
self._GuidsUsedByPcd = None\r
- self._GuidComments = sdict()\r
+ self._GuidComments = OrderedDict()\r
self._ProtocolList = None\r
- self._ProtocolComments = sdict()\r
+ self._ProtocolComments = OrderedDict()\r
self._PpiList = None\r
- self._PpiComments = sdict()\r
+ self._PpiComments = OrderedDict()\r
self._DepexList = None\r
self._DepexExpressionList = None\r
self._BuildOption = None\r
# Macros could be used in build_rule.txt (also Makefile)\r
def _GetMacros(self):\r
if self._Macro is None:\r
- self._Macro = sdict()\r
+ self._Macro = OrderedDict()\r
self._Macro["WORKSPACE" ] = self.WorkspaceDir\r
self._Macro["MODULE_NAME" ] = self.Name\r
self._Macro["MODULE_NAME_GUID" ] = self._GetUniqueBaseName()\r
#\r
def _GetLibraryPcdList(self):\r
if self._LibraryPcdList is None:\r
- Pcds = sdict()\r
+ Pcds = OrderedDict()\r
if not self.IsLibrary:\r
# get PCDs from dependent libraries\r
for Library in self.DependentLibraryList:\r
#\r
def _GetGuidList(self):\r
if self._GuidList is None:\r
- self._GuidList = sdict()\r
+ self._GuidList = OrderedDict()\r
self._GuidList.update(self.Module.Guids)\r
for Library in self.DependentLibraryList:\r
self._GuidList.update(Library.Guids)\r
\r
def GetGuidsUsedByPcd(self):\r
if self._GuidsUsedByPcd is None:\r
- self._GuidsUsedByPcd = sdict()\r
+ self._GuidsUsedByPcd = OrderedDict()\r
self._GuidsUsedByPcd.update(self.Module.GetGuidsUsedByPcd())\r
for Library in self.DependentLibraryList:\r
self._GuidsUsedByPcd.update(Library.GetGuidsUsedByPcd())\r
#\r
def _GetProtocolList(self):\r
if self._ProtocolList is None:\r
- self._ProtocolList = sdict()\r
+ self._ProtocolList = OrderedDict()\r
self._ProtocolList.update(self.Module.Protocols)\r
for Library in self.DependentLibraryList:\r
self._ProtocolList.update(Library.Protocols)\r
#\r
def _GetPpiList(self):\r
if self._PpiList is None:\r
- self._PpiList = sdict()\r
+ self._PpiList = OrderedDict()\r
self._PpiList.update(self.Module.Ppis)\r
for Library in self.DependentLibraryList:\r
self._PpiList.update(Library.Ppis)\r
PcdCheckList.append((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, 'DynamicEx'))\r
PcdCheckList.append((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, 'Dynamic'))\r
PcdTokenSpaceList.append(Pcd.TokenSpaceGuidCName)\r
- GuidList = sdict()\r
+ GuidList = OrderedDict()\r
GuidList.update(self.GuidList)\r
for TokenSpace in self.GetGuidsUsedByPcd():\r
# If token space is not referred by patch PCD or Ex PCD, remove the GUID from GUID list\r