]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DecBuildData.py
MdeModulePkg/PerformanceMeasurement.h: Correct the license
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DecBuildData.py
index 49ef1df4aa76bb8e11e06b70e18fb9a826899f5d..7eeca9524529b5b6dec743db945fe9a8c043ffb0 100644 (file)
@@ -11,7 +11,7 @@
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
-from Common.String import *\r
+from Common.StringUtils import *\r
 from Common.DataType import *\r
 from Common.Misc import *\r
 from types import *\r
@@ -27,17 +27,17 @@ from Workspace.BuildClassObject import PackageBuildClassObject, StructurePcd, Pc
 class DecBuildData(PackageBuildClassObject):\r
     # dict used to convert PCD type in database to string used by build tool\r
     _PCD_TYPE_STRING_ = {\r
-        MODEL_PCD_FIXED_AT_BUILD        :   "FixedAtBuild",\r
-        MODEL_PCD_PATCHABLE_IN_MODULE   :   "PatchableInModule",\r
-        MODEL_PCD_FEATURE_FLAG          :   "FeatureFlag",\r
-        MODEL_PCD_DYNAMIC               :   "Dynamic",\r
-        MODEL_PCD_DYNAMIC_DEFAULT       :   "Dynamic",\r
-        MODEL_PCD_DYNAMIC_HII           :   "DynamicHii",\r
-        MODEL_PCD_DYNAMIC_VPD           :   "DynamicVpd",\r
-        MODEL_PCD_DYNAMIC_EX            :   "DynamicEx",\r
-        MODEL_PCD_DYNAMIC_EX_DEFAULT    :   "DynamicEx",\r
-        MODEL_PCD_DYNAMIC_EX_HII        :   "DynamicExHii",\r
-        MODEL_PCD_DYNAMIC_EX_VPD        :   "DynamicExVpd",\r
+        MODEL_PCD_FIXED_AT_BUILD        :   TAB_PCDS_FIXED_AT_BUILD,\r
+        MODEL_PCD_PATCHABLE_IN_MODULE   :   TAB_PCDS_PATCHABLE_IN_MODULE,\r
+        MODEL_PCD_FEATURE_FLAG          :   TAB_PCDS_FEATURE_FLAG,\r
+        MODEL_PCD_DYNAMIC               :   TAB_PCDS_DYNAMIC,\r
+        MODEL_PCD_DYNAMIC_DEFAULT       :   TAB_PCDS_DYNAMIC,\r
+        MODEL_PCD_DYNAMIC_HII           :   TAB_PCDS_DYNAMIC_HII,\r
+        MODEL_PCD_DYNAMIC_VPD           :   TAB_PCDS_DYNAMIC_VPD,\r
+        MODEL_PCD_DYNAMIC_EX            :   TAB_PCDS_DYNAMIC_EX,\r
+        MODEL_PCD_DYNAMIC_EX_DEFAULT    :   TAB_PCDS_DYNAMIC_EX,\r
+        MODEL_PCD_DYNAMIC_EX_HII        :   TAB_PCDS_DYNAMIC_EX_HII,\r
+        MODEL_PCD_DYNAMIC_EX_VPD        :   TAB_PCDS_DYNAMIC_EX_VPD,\r
     }\r
 \r
     # dict used to convert part of [Defines] to members of DecBuildData directly\r
@@ -63,7 +63,7 @@ class DecBuildData(PackageBuildClassObject):
     #   @param      Platform        (not used for DecBuildData)\r
     #   @param      Macros          Macros used for replacement in DSC file\r
     #\r
-    def __init__(self, File, RawData, BuildDataBase, Arch='COMMON', Target=None, Toolchain=None):\r
+    def __init__(self, File, RawData, BuildDataBase, Arch=TAB_ARCH_COMMON, Target=None, Toolchain=None):\r
         self.MetaFile = File\r
         self._PackageDir = File.Dir\r
         self._RawData = RawData\r
@@ -199,9 +199,9 @@ class DecBuildData(PackageBuildClassObject):
                 if Name not in NameList:\r
                     NameList.append(Name)\r
                 ProtocolDict[Arch, Name] = Guid\r
-            # use sdict to keep the order\r
-            self._Protocols = sdict()\r
-            self._PrivateProtocols = sdict()\r
+            # use OrderedDict to keep the order\r
+            self._Protocols = OrderedDict()\r
+            self._PrivateProtocols = OrderedDict()\r
             for Name in NameList:\r
                 #\r
                 # limit the ARCH to self._Arch, if no self._Arch found, tdict\r
@@ -241,9 +241,9 @@ class DecBuildData(PackageBuildClassObject):
                 if Name not in NameList:\r
                     NameList.append(Name)\r
                 PpiDict[Arch, Name] = Guid\r
-            # use sdict to keep the order\r
-            self._Ppis = sdict()\r
-            self._PrivatePpis = sdict()\r
+            # use OrderedDict to keep the order\r
+            self._Ppis = OrderedDict()\r
+            self._PrivatePpis = OrderedDict()\r
             for Name in NameList:\r
                 #\r
                 # limit the ARCH to self._Arch, if no self._Arch found, tdict\r
@@ -283,9 +283,9 @@ class DecBuildData(PackageBuildClassObject):
                 if Name not in NameList:\r
                     NameList.append(Name)\r
                 GuidDict[Arch, Name] = Guid\r
-            # use sdict to keep the order\r
-            self._Guids = sdict()\r
-            self._PrivateGuids = sdict()\r
+            # use OrderedDict to keep the order\r
+            self._Guids = OrderedDict()\r
+            self._PrivateGuids = OrderedDict()\r
             for Name in NameList:\r
                 #\r
                 # limit the ARCH to self._Arch, if no self._Arch found, tdict\r
@@ -327,7 +327,7 @@ class DecBuildData(PackageBuildClassObject):
                         PublicInclues.append(File)\r
                     if File in self._PrivateIncludes:\r
                         EdkLogger.error('build', OPTION_CONFLICT, "Can't determine %s's attribute, it is both defined as Private and non-Private attribute in DEC file." % File, File=self.MetaFile, Line=LineNo)\r
-                if Record[3] == "COMMON":\r
+                if Record[3] == TAB_COMMON:\r
                     self._CommonIncludes.append(File)\r
         return self._Includes\r
 \r
@@ -350,7 +350,7 @@ class DecBuildData(PackageBuildClassObject):
                     EdkLogger.error('build', ErrorCode, ExtraData=ErrorInfo, File=self.MetaFile, Line=LineNo)\r
                 LibraryClassSet.add(LibraryClass)\r
                 LibraryClassDict[Arch, LibraryClass] = File\r
-            self._LibraryClasses = sdict()\r
+            self._LibraryClasses = OrderedDict()\r
             for LibraryClass in LibraryClassSet:\r
                 self._LibraryClasses[LibraryClass] = LibraryClassDict[self._Arch, LibraryClass]\r
         return self._LibraryClasses\r
@@ -358,7 +358,7 @@ class DecBuildData(PackageBuildClassObject):
     ## Retrieve PCD declarations\r
     def _GetPcds(self):\r
         if self._Pcds is None:\r
-            self._Pcds = sdict()\r
+            self._Pcds = OrderedDict()\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD))\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_PATCHABLE_IN_MODULE))\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_FEATURE_FLAG))\r
@@ -369,16 +369,16 @@ class DecBuildData(PackageBuildClassObject):
 \r
     def ProcessStructurePcd(self, StructurePcdRawDataSet):\r
         s_pcd_set = OrderedDict()\r
-        for s_pcd,LineNo in StructurePcdRawDataSet:\r
+        for s_pcd, LineNo in StructurePcdRawDataSet:\r
             if s_pcd.TokenSpaceGuidCName not in s_pcd_set:\r
                 s_pcd_set[s_pcd.TokenSpaceGuidCName] = []\r
-            s_pcd_set[s_pcd.TokenSpaceGuidCName].append((s_pcd,LineNo))\r
+            s_pcd_set[s_pcd.TokenSpaceGuidCName].append((s_pcd, LineNo))\r
 \r
         str_pcd_set = []\r
         for pcdname in s_pcd_set:\r
             dep_pkgs = []\r
             struct_pcd = StructurePcd()\r
-            for item,LineNo in s_pcd_set[pcdname]:\r
+            for item, LineNo in s_pcd_set[pcdname]:\r
                 if "<HeaderFiles>" in item.TokenCName:\r
                     struct_pcd.StructuredPcdIncludeFile.append(item.DefaultValue)\r
                 elif "<Packages>" in item.TokenCName:\r
@@ -391,7 +391,7 @@ class DecBuildData(PackageBuildClassObject):
                     struct_pcd.PkgPath = self.MetaFile.File\r
                     struct_pcd.SetDecDefaultValue(item.DefaultValue)\r
                 else:\r
-                    struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue,self.MetaFile.File,LineNo)\r
+                    struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue, self.MetaFile.File, LineNo)\r
 \r
             struct_pcd.PackageDecs = dep_pkgs\r
             str_pcd_set.append(struct_pcd)\r
@@ -399,7 +399,7 @@ class DecBuildData(PackageBuildClassObject):
 \r
     ## Retrieve PCD declarations for given type\r
     def _GetPcd(self, Type):\r
-        Pcds = sdict()\r
+        Pcds = OrderedDict()\r
         #\r
         # tdict is a special kind of dict, used for selecting correct\r
         # PCD declaration for given ARCH\r
@@ -412,7 +412,7 @@ class DecBuildData(PackageBuildClassObject):
         StrPcdSet = []\r
         RecordList = self._RawData[Type, self._Arch]\r
         for TokenSpaceGuid, PcdCName, Setting, Arch, PrivateFlag, Dummy1, Dummy2 in RecordList:\r
-            PcdDict[Arch, PcdCName, TokenSpaceGuid] = (Setting,Dummy2)\r
+            PcdDict[Arch, PcdCName, TokenSpaceGuid] = (Setting, Dummy2)\r
             if not (PcdCName, TokenSpaceGuid) in PcdSet:\r
                 PcdSet.append((PcdCName, TokenSpaceGuid))\r
 \r
@@ -421,7 +421,7 @@ class DecBuildData(PackageBuildClassObject):
             # limit the ARCH to self._Arch, if no self._Arch found, tdict\r
             # will automatically turn to 'common' ARCH and try again\r
             #\r
-            Setting,LineNo = PcdDict[self._Arch, PcdCName, TokenSpaceGuid]\r
+            Setting, LineNo = PcdDict[self._Arch, PcdCName, TokenSpaceGuid]\r
             if Setting is None:\r
                 continue\r
 \r
@@ -442,9 +442,9 @@ class DecBuildData(PackageBuildClassObject):
                                         list(validlists),\r
                                         list(expressions)\r
                                         )\r
-            PcdObj.DefinitionPosition = (self.MetaFile.File,LineNo)\r
+            PcdObj.DefinitionPosition = (self.MetaFile.File, LineNo)\r
             if "." in TokenSpaceGuid:\r
-                StrPcdSet.append((PcdObj,LineNo))\r
+                StrPcdSet.append((PcdObj, LineNo))\r
             else:\r
                 Pcds[PcdCName, TokenSpaceGuid, self._PCD_TYPE_STRING_[Type]] = PcdObj\r
 \r
@@ -455,10 +455,10 @@ class DecBuildData(PackageBuildClassObject):
         for pcd in Pcds.values():\r
             if pcd.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
                 if StructPattern.match(pcd.DatumType) is None:\r
-                    EdkLogger.error('build', FORMAT_INVALID, "DatumType only support BOOLEAN, UINT8, UINT16, UINT32, UINT64, VOID* or a valid struct name.", pcd.DefinitionPosition[0],pcd.DefinitionPosition[1])\r
+                    EdkLogger.error('build', FORMAT_INVALID, "DatumType only support BOOLEAN, UINT8, UINT16, UINT32, UINT64, VOID* or a valid struct name.", pcd.DefinitionPosition[0], pcd.DefinitionPosition[1])\r
         for struct_pcd in Pcds.values():\r
-            if isinstance(struct_pcd,StructurePcd) and not struct_pcd.StructuredPcdIncludeFile:\r
-                EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName,struct_pcd.DefinitionPosition[0],struct_pcd.DefinitionPosition[1] ))\r
+            if isinstance(struct_pcd, StructurePcd) and not struct_pcd.StructuredPcdIncludeFile:\r
+                EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName, struct_pcd.DefinitionPosition[0], struct_pcd.DefinitionPosition[1] ))\r
 \r
         return Pcds\r
     @property\r