]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Share a dictionary instead of keeping multiples
authorCarsey, Jaben <jaben.carsey@intel.com>
Fri, 20 Apr 2018 15:51:35 +0000 (23:51 +0800)
committerYonghong Zhu <yonghong.zhu@intel.com>
Wed, 2 May 2018 06:56:34 +0000 (14:56 +0800)
Move a dictionary to a shared location and use from there

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Workspace/InfBuildData.py
BaseTools/Source/Python/build/BuildReport.py

index 7ef0ab6da983d069b6a325490fd63381ff8a098a..cac455f9f7cf1a298f808ca9ed57c9c7222dc960 100644 (file)
@@ -96,6 +96,21 @@ EDK_COMPONENT_TYPE_APPLICATION = 'APPLICATION'
 EDK_NAME = 'EDK'\r
 EDKII_NAME = 'EDKII'\r
 \r
+COMPONENT_TO_MODULE_MAP_DICT = {\r
+    "LIBRARY"               :   SUP_MODULE_BASE,\r
+    "SECURITY_CORE"         :   SUP_MODULE_SEC,\r
+    SUP_MODULE_PEI_CORE     :   SUP_MODULE_PEI_CORE,\r
+    "COMBINED_PEIM_DRIVER"  :   SUP_MODULE_PEIM,\r
+    "PIC_PEIM"              :   SUP_MODULE_PEIM,\r
+    "RELOCATABLE_PEIM"      :   SUP_MODULE_PEIM,\r
+    "PE32_PEIM"             :   SUP_MODULE_PEIM,\r
+    "BS_DRIVER"             :   SUP_MODULE_DXE_DRIVER,\r
+    "RT_DRIVER"             :   SUP_MODULE_DXE_RUNTIME_DRIVER,\r
+    "SAL_RT_DRIVER"         :   SUP_MODULE_DXE_SAL_DRIVER,\r
+    "APPLICATION"           :   SUP_MODULE_UEFI_APPLICATION,\r
+    "LOGO"                  :   SUP_MODULE_BASE,\r
+}\r
+\r
 BINARY_FILE_TYPE_FW = 'FW'\r
 BINARY_FILE_TYPE_GUID = 'GUID'\r
 BINARY_FILE_TYPE_PREEFORM = 'PREEFORM'\r
index f2d36d0ee0d45215188a3b21e0764e5d44afd3e3..d64a281a98f7a22ac691cf824f017246aee66131 100644 (file)
@@ -66,26 +66,6 @@ class InfBuildData(ModuleBuildClassObject):
         TAB_COMPONENTS_SOURCE_OVERRIDE_PATH         : "_SourceOverridePath",\r
     }\r
 \r
-    # dict used to convert Component type to Module type\r
-    _MODULE_TYPE_ = {\r
-        "LIBRARY"               :   SUP_MODULE_BASE,\r
-        "SECURITY_CORE"         :   SUP_MODULE_SEC,\r
-        SUP_MODULE_PEI_CORE              :   SUP_MODULE_PEI_CORE,\r
-        "COMBINED_PEIM_DRIVER"  :   SUP_MODULE_PEIM,\r
-        "PIC_PEIM"              :   SUP_MODULE_PEIM,\r
-        "RELOCATABLE_PEIM"      :   SUP_MODULE_PEIM,\r
-        "PE32_PEIM"             :   SUP_MODULE_PEIM,\r
-        "BS_DRIVER"             :   SUP_MODULE_DXE_DRIVER,\r
-        "RT_DRIVER"             :   SUP_MODULE_DXE_RUNTIME_DRIVER,\r
-        "SAL_RT_DRIVER"         :   SUP_MODULE_DXE_SAL_DRIVER,\r
-        SUP_MODULE_DXE_SMM_DRIVER        :   SUP_MODULE_DXE_SMM_DRIVER,\r
-    #    "SMM_DRIVER"            :   SUP_MODULE_DXE_SMM_DRIVER,\r
-    #    "BS_DRIVER"             :   SUP_MODULE_DXE_SMM_DRIVER,\r
-    #    "BS_DRIVER"             :   SUP_MODULE_UEFI_DRIVER,\r
-        "APPLICATION"           :   SUP_MODULE_UEFI_APPLICATION,\r
-        "LOGO"                  :   SUP_MODULE_BASE,\r
-    }\r
-\r
     # regular expression for converting XXX_FLAGS in [nmake] section to new type\r
     _NMAKE_FLAG_PATTERN_ = re.compile("(?:EBC_)?([A-Z]+)_(?:STD_|PROJ_|ARCH_)?FLAGS(?:_DLL|_ASL|_EXE)?", re.UNICODE)\r
     # dict used to convert old tool name used in [nmake] section to new ones\r
@@ -362,8 +342,8 @@ class InfBuildData(ModuleBuildClassObject):
                 EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE,\r
                                 "COMPONENT_TYPE is not given", File=self.MetaFile)\r
             self._BuildType = self._ComponentType.upper()\r
-            if self._ComponentType in self._MODULE_TYPE_:\r
-                self._ModuleType = self._MODULE_TYPE_[self._ComponentType]\r
+            if self._ComponentType in COMPONENT_TO_MODULE_MAP_DICT:\r
+                self._ModuleType = COMPONENT_TO_MODULE_MAP_DICT[self._ComponentType]\r
             if self._ComponentType == 'LIBRARY':\r
                 self._LibraryClass = [LibraryClassObject(self._BaseName, SUP_MODULE_LIST)]\r
             # make use some [nmake] section macros\r
index b2e5fd6fbf384dc049e7ef543368f32abfa4cb6c..b25350e4bf9d4e3533ea679d2ac10bc29014f3c3 100644 (file)
@@ -47,21 +47,6 @@ from Common.DataType import *
 import collections\r
 from Common.Expression import *\r
 \r
-gComponentType2ModuleType = {\r
-    "LIBRARY"               :   SUP_MODULE_BASE,\r
-    "SECURITY_CORE"         :   SUP_MODULE_SEC,\r
-    SUP_MODULE_PEI_CORE     :   SUP_MODULE_PEI_CORE,\r
-    "COMBINED_PEIM_DRIVER"  :   SUP_MODULE_PEIM,\r
-    "PIC_PEIM"              :   SUP_MODULE_PEIM,\r
-    "RELOCATABLE_PEIM"      :   SUP_MODULE_PEIM,\r
-    "PE32_PEIM"             :   SUP_MODULE_PEIM,\r
-    "BS_DRIVER"             :   SUP_MODULE_DXE_DRIVER,\r
-    "RT_DRIVER"             :   SUP_MODULE_DXE_RUNTIME_DRIVER,\r
-    "SAL_RT_DRIVER"         :   SUP_MODULE_DXE_SAL_DRIVER,\r
-    "APPLICATION"           :   SUP_MODULE_UEFI_APPLICATION,\r
-    "LOGO"                  :   SUP_MODULE_BASE,\r
-}\r
-\r
 ## Pattern to extract contents in EDK DXS files\r
 gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)\r
 \r
@@ -422,7 +407,7 @@ class DepexReport(object):
         self._DepexFileName = os.path.join(M.BuildDir, "OUTPUT", M.Module.BaseName + ".depex")\r
         ModuleType = M.ModuleType\r
         if not ModuleType:\r
-            ModuleType = gComponentType2ModuleType.get(M.ComponentType, "")\r
+            ModuleType = COMPONENT_TO_MODULE_MAP_DICT.get(M.ComponentType, "")\r
 \r
         if ModuleType in [SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_DXE_CORE, SUP_MODULE_SMM_CORE, SUP_MODULE_MM_CORE_STANDALONE, SUP_MODULE_UEFI_APPLICATION]:\r
             return\r
@@ -587,7 +572,7 @@ class ModuleReport(object):
         if not M.IsLibrary:\r
             ModuleType = M.ModuleType\r
             if not ModuleType:\r
-                ModuleType = gComponentType2ModuleType.get(M.ComponentType, "")\r
+                ModuleType = COMPONENT_TO_MODULE_MAP_DICT.get(M.ComponentType, "")\r
             #\r
             # If a module complies to PI 1.1, promote Module type to "SMM_DRIVER"\r
             #\r