]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/BuildClassObject.py
BaseTools: refactor Build Database objects
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / BuildClassObject.py
index 12227b855f9391793b576ae740ddf19754f30ff2..ece117666f3991b51d20d6aea59c1595c0e7b0ce 100644 (file)
@@ -11,8 +11,8 @@
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 \r
+from collections import OrderedDict, namedtuple\r
 from Common.DataType import *\r
-import collections\r
 \r
 ## PcdClassObject\r
 #\r
@@ -166,17 +166,17 @@ class StructurePcd(PcdClassObject):
         self.StructuredPcdIncludeFile = [] if StructuredPcdIncludeFile is None else StructuredPcdIncludeFile\r
         self.PackageDecs = Packages\r
         self.DefaultStoreName = [default_store]\r
-        self.DefaultValues = collections.OrderedDict()\r
+        self.DefaultValues = OrderedDict()\r
         self.PcdMode = None\r
-        self.SkuOverrideValues = collections.OrderedDict()\r
+        self.SkuOverrideValues = OrderedDict()\r
         self.FlexibleFieldName = None\r
         self.StructName = None\r
         self.PcdDefineLineNo = 0\r
         self.PkgPath = ""\r
         self.DefaultValueFromDec = ""\r
         self.ValueChain = set()\r
-        self.PcdFieldValueFromComm = collections.OrderedDict()\r
-        self.PcdFieldValueFromFdf = collections.OrderedDict()\r
+        self.PcdFieldValueFromComm = OrderedDict()\r
+        self.PcdFieldValueFromFdf = OrderedDict()\r
     def __repr__(self):\r
         return self.TypeName\r
 \r
@@ -190,9 +190,9 @@ class StructurePcd(PcdClassObject):
         self.DefaultValueFromDec = DefaultValue\r
     def AddOverrideValue (self, FieldName, Value, SkuName, DefaultStoreName, FileName="", LineNo=0):\r
         if SkuName not in self.SkuOverrideValues:\r
-            self.SkuOverrideValues[SkuName] = collections.OrderedDict()\r
+            self.SkuOverrideValues[SkuName] = OrderedDict()\r
         if DefaultStoreName not in self.SkuOverrideValues[SkuName]:\r
-            self.SkuOverrideValues[SkuName][DefaultStoreName] = collections.OrderedDict()\r
+            self.SkuOverrideValues[SkuName][DefaultStoreName] = OrderedDict()\r
         if FieldName in self.SkuOverrideValues[SkuName][DefaultStoreName]:\r
             del self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName]\r
         self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName] = [Value.strip(), FileName, LineNo]\r
@@ -243,21 +243,7 @@ class StructurePcd(PcdClassObject):
             self.PcdFieldValueFromComm = PcdObject.PcdFieldValueFromComm if PcdObject.PcdFieldValueFromComm else self.PcdFieldValueFromComm\r
             self.PcdFieldValueFromFdf = PcdObject.PcdFieldValueFromFdf if PcdObject.PcdFieldValueFromFdf else self.PcdFieldValueFromFdf\r
 \r
-## LibraryClassObject\r
-#\r
-# This Class defines LibraryClassObject used in BuildDatabase\r
-#\r
-# @param object:      Inherited from object class\r
-# @param Name:        Input value for LibraryClassName, default is None\r
-# @param SupModList:  Input value for SupModList, default is []\r
-#\r
-# @var LibraryClass:  To store value for LibraryClass\r
-# @var SupModList:    To store value for SupModList\r
-#\r
-class LibraryClassObject(object):\r
-    def __init__(self, Name = None, SupModList = []):\r
-        self.LibraryClass = Name\r
-        self.SupModList = SupModList\r
+LibraryClassObject = namedtuple('LibraryClassObject', ['LibraryClass','SupModList'], verbose=False)\r
 \r
 ## ModuleBuildClassObject\r
 #\r
@@ -325,7 +311,7 @@ class ModuleBuildClassObject(object):
 \r
         self.Binaries                = []\r
         self.Sources                 = []\r
-        self.LibraryClasses          = collections.OrderedDict()\r
+        self.LibraryClasses          = OrderedDict()\r
         self.Libraries               = []\r
         self.Protocols               = []\r
         self.Ppis                    = []\r