]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Workspace classes refactor properties
authorCarsey, Jaben <jaben.carsey@intel.com>
Mon, 10 Sep 2018 22:18:05 +0000 (06:18 +0800)
committerYonghong Zhu <yonghong.zhu@intel.com>
Thu, 20 Sep 2018 14:18:06 +0000 (22:18 +0800)
1) use decorators
2) also change some private functions to public when all callers are
external
3) change external callers to use functions instead of directly
accessing private data.

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/GenFds/FfsInfStatement.py
BaseTools/Source/Python/Workspace/DecBuildData.py
BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools/Source/Python/Workspace/InfBuildData.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/build/build.py

index 56bb966698ad85d4b880877d73b0e1d59111c652..6149bc81b4ef53bbe70e0c2bcd8e18cbff1ac542 100644 (file)
@@ -341,9 +341,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
         self.InfModule = Inf\r
         self.PcdIsDriver = Inf.PcdIsDriver\r
         self.IsBinaryModule = Inf.IsBinaryModule\r
-        Inf._GetDepex()\r
-        Inf._GetDepexExpression()\r
-        if len(Inf._Depex.data) > 0 and len(Inf._DepexExpression.data) > 0:\r
+        if len(Inf.Depex.data) > 0 and len(Inf.DepexExpression.data) > 0:\r
             self.Depex = True\r
 \r
         GenFdsGlobalVariable.VerboseLogger("BaseName : %s" % self.BaseName)\r
index 45beaebc63efe66737f4124a3ce85d80342b4d1d..1f74e898f2ef76ab3549197ab8fe7d1acf86b7a4 100644 (file)
@@ -99,21 +99,22 @@ class DecBuildData(PackageBuildClassObject):
         self._CommonIncludes    = None\r
         self._LibraryClasses    = None\r
         self._Pcds              = None\r
-        self.__Macros           = None\r
+        self._MacroDict         = None\r
         self._PrivateProtocols  = None\r
         self._PrivatePpis       = None\r
         self._PrivateGuids      = None\r
         self._PrivateIncludes   = None\r
 \r
     ## Get current effective macros\r
-    def _GetMacros(self):\r
-        if self.__Macros is None:\r
-            self.__Macros = {}\r
-            self.__Macros.update(GlobalData.gGlobalDefines)\r
-        return self.__Macros\r
+    @property\r
+    def _Macros(self):\r
+        if self._MacroDict is None:\r
+            self._MacroDict = dict(GlobalData.gGlobalDefines)\r
+        return self._MacroDict\r
 \r
     ## Get architecture\r
-    def _GetArch(self):\r
+    @property\r
+    def Arch(self):\r
         return self._Arch\r
 \r
     ## Retrieve all information in [Defines] section\r
@@ -129,7 +130,8 @@ class DecBuildData(PackageBuildClassObject):
         self._Header = 'DUMMY'\r
 \r
     ## Retrieve package name\r
-    def _GetPackageName(self):\r
+    @property\r
+    def PackageName(self):\r
         if self._PackageName is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -138,7 +140,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._PackageName\r
 \r
     ## Retrieve file guid\r
-    def _GetFileGuid(self):\r
+    @property\r
+    def PackageName(self):\r
         if self._Guid is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -147,7 +150,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._Guid\r
 \r
     ## Retrieve package version\r
-    def _GetVersion(self):\r
+    @property\r
+    def Version(self):\r
         if self._Version is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -156,7 +160,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._Version\r
 \r
     ## Retrieve protocol definitions (name/value pairs)\r
-    def _GetProtocol(self):\r
+    @property\r
+    def Protocols(self):\r
         if self._Protocols is None:\r
             #\r
             # tdict is a special kind of dict, used for selecting correct\r
@@ -198,7 +203,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._Protocols\r
 \r
     ## Retrieve PPI definitions (name/value pairs)\r
-    def _GetPpi(self):\r
+    @property\r
+    def Ppis(self):\r
         if self._Ppis is None:\r
             #\r
             # tdict is a special kind of dict, used for selecting correct\r
@@ -240,7 +246,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._Ppis\r
 \r
     ## Retrieve GUID definitions (name/value pairs)\r
-    def _GetGuid(self):\r
+    @property\r
+    def Guids(self):\r
         if self._Guids is None:\r
             #\r
             # tdict is a special kind of dict, used for selecting correct\r
@@ -282,7 +289,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._Guids\r
 \r
     ## Retrieve public include paths declared in this package\r
-    def _GetInclude(self):\r
+    @property\r
+    def Includes(self):\r
         if self._Includes is None or self._CommonIncludes is None:\r
             self._CommonIncludes = []\r
             self._Includes = []\r
@@ -317,7 +325,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._Includes\r
 \r
     ## Retrieve library class declarations (not used in build at present)\r
-    def _GetLibraryClass(self):\r
+    @property\r
+    def LibraryClasses(self):\r
         if self._LibraryClasses is None:\r
             #\r
             # tdict is a special kind of dict, used for selecting correct\r
@@ -341,7 +350,8 @@ class DecBuildData(PackageBuildClassObject):
         return self._LibraryClasses\r
 \r
     ## Retrieve PCD declarations\r
-    def _GetPcds(self):\r
+    @property\r
+    def Pcds(self):\r
         if self._Pcds is None:\r
             self._Pcds = OrderedDict()\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD))\r
@@ -351,7 +361,6 @@ class DecBuildData(PackageBuildClassObject):
             self._Pcds.update(self._GetPcd(MODEL_PCD_DYNAMIC_EX))\r
         return self._Pcds\r
 \r
-\r
     def ProcessStructurePcd(self, StructurePcdRawDataSet):\r
         s_pcd_set = OrderedDict()\r
         for s_pcd, LineNo in StructurePcdRawDataSet:\r
@@ -446,22 +455,9 @@ class DecBuildData(PackageBuildClassObject):
                 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
+\r
     @property\r
     def CommonIncludes(self):\r
         if self._CommonIncludes is None:\r
             self.Includes\r
         return self._CommonIncludes\r
-\r
-\r
-    _Macros = property(_GetMacros)\r
-    Arch = property(_GetArch)\r
-    PackageName = property(_GetPackageName)\r
-    Guid = property(_GetFileGuid)\r
-    Version = property(_GetVersion)\r
-\r
-    Protocols = property(_GetProtocol)\r
-    Ppis = property(_GetPpi)\r
-    Guids = property(_GetGuid)\r
-    Includes = property(_GetInclude)\r
-    LibraryClasses = property(_GetLibraryClass)\r
-    Pcds = property(_GetPcds)\r
index 88ba415c5a3a640cd94f7d30ccc069883ca1e1ae..506ec0688f877d79cea1d3c16956ad2186fe1c5c 100644 (file)
@@ -222,6 +222,7 @@ class DscBuildData(PlatformBuildClassObject):
         self.WorkspaceDir = os.getenv("WORKSPACE") if os.getenv("WORKSPACE") else ""\r
         self.DefaultStores = None\r
         self.SkuIdMgr = SkuClass(self.SkuName, self.SkuIds)\r
+\r
     @property\r
     def OutputPath(self):\r
         if os.getenv("WORKSPACE"):\r
@@ -273,10 +274,9 @@ class DscBuildData(PlatformBuildClassObject):
         self._RFCLanguages      = None\r
         self._ISOLanguages      = None\r
         self._VpdToolGuid       = None\r
-        self.__Macros           = None\r
+        self._MacroDict         = None\r
         self.DefaultStores      = None\r
 \r
-\r
     ## handle Override Path of Module\r
     def _HandleOverridePath(self):\r
         RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch]\r
@@ -296,16 +296,18 @@ class DscBuildData(PlatformBuildClassObject):
                 GlobalData.gOverrideDir[ModuleFile.Key] = SourceOverridePath\r
 \r
     ## Get current effective macros\r
-    def _GetMacros(self):\r
-        if self.__Macros is None:\r
-            self.__Macros = {}\r
-            self.__Macros.update(GlobalData.gPlatformDefines)\r
-            self.__Macros.update(GlobalData.gGlobalDefines)\r
-            self.__Macros.update(GlobalData.gCommandLineDefines)\r
-        return self.__Macros\r
+    @property\r
+    def _Macros(self):\r
+        if self._MacroDict is None:\r
+            self._MacroDict = {}\r
+            self._MacroDict.update(GlobalData.gPlatformDefines)\r
+            self._MacroDict.update(GlobalData.gGlobalDefines)\r
+            self._MacroDict.update(GlobalData.gCommandLineDefines)\r
+        return self._MacroDict\r
 \r
     ## Get architecture\r
-    def _GetArch(self):\r
+    @property\r
+    def Arch(self):\r
         return self._Arch\r
 \r
     ## Retrieve all information in [Defines] section\r
@@ -410,7 +412,8 @@ class DscBuildData(PlatformBuildClassObject):
         self._Header = 'DUMMY'\r
 \r
     ## Retrieve platform name\r
-    def _GetPlatformName(self):\r
+    @property\r
+    def PlatformName(self):\r
         if self._PlatformName is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -418,8 +421,13 @@ class DscBuildData(PlatformBuildClassObject):
                 EdkLogger.error('build', ATTRIBUTE_NOT_AVAILABLE, "No PLATFORM_NAME", File=self.MetaFile)\r
         return self._PlatformName\r
 \r
+    @property\r
+    def Platform(self):\r
+        return self.PlatformName\r
+\r
     ## Retrieve file guid\r
-    def _GetFileGuid(self):\r
+    @property\r
+    def Guid(self):\r
         if self._Guid is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -428,7 +436,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._Guid\r
 \r
     ## Retrieve platform version\r
-    def _GetVersion(self):\r
+    @property\r
+    def Version(self):\r
         if self._Version is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -437,7 +446,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._Version\r
 \r
     ## Retrieve platform description file version\r
-    def _GetDscSpec(self):\r
+    @property\r
+    def DscSpecification(self):\r
         if self._DscSpecification is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -446,7 +456,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._DscSpecification\r
 \r
     ## Retrieve OUTPUT_DIRECTORY\r
-    def _GetOutpuDir(self):\r
+    @property\r
+    def OutputDirectory(self):\r
         if self._OutputDirectory is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -455,7 +466,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._OutputDirectory\r
 \r
     ## Retrieve SUPPORTED_ARCHITECTURES\r
-    def _GetSupArch(self):\r
+    @property\r
+    def SupArchList(self):\r
         if self._SupArchList is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -464,7 +476,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._SupArchList\r
 \r
     ## Retrieve BUILD_TARGETS\r
-    def _GetBuildTarget(self):\r
+    @property\r
+    def BuildTargets(self):\r
         if self._BuildTargets is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -472,14 +485,17 @@ class DscBuildData(PlatformBuildClassObject):
                 EdkLogger.error('build', ATTRIBUTE_NOT_AVAILABLE, "No BUILD_TARGETS", File=self.MetaFile)\r
         return self._BuildTargets\r
 \r
-    def _GetPcdInfoFlag(self):\r
+    @property\r
+    def PcdInfoFlag(self):\r
         if self._PcdInfoFlag is None or self._PcdInfoFlag.upper() == 'FALSE':\r
             return False\r
         elif self._PcdInfoFlag.upper() == 'TRUE':\r
             return True\r
         else:\r
             return False\r
-    def _GetVarCheckFlag(self):\r
+\r
+    @property\r
+    def VarCheckFlag(self):\r
         if self._VarCheckFlag is None or self._VarCheckFlag.upper() == 'FALSE':\r
             return False\r
         elif self._VarCheckFlag.upper() == 'TRUE':\r
@@ -488,7 +504,8 @@ class DscBuildData(PlatformBuildClassObject):
             return False\r
 \r
     # # Retrieve SKUID_IDENTIFIER\r
-    def _GetSkuName(self):\r
+    @property\r
+    def SkuName(self):\r
         if self._SkuName is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -497,10 +514,12 @@ class DscBuildData(PlatformBuildClassObject):
         return self._SkuName\r
 \r
     ## Override SKUID_IDENTIFIER\r
-    def _SetSkuName(self, Value):\r
+    @SkuName.setter\r
+    def SkuName(self, Value):\r
         self._SkuName = Value\r
 \r
-    def _GetFdfFile(self):\r
+    @property\r
+    def FlashDefinition(self):\r
         if self._FlashDefinition is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -508,7 +527,8 @@ class DscBuildData(PlatformBuildClassObject):
                 self._FlashDefinition = ''\r
         return self._FlashDefinition\r
 \r
-    def _GetPrebuild(self):\r
+    @property\r
+    def Prebuild(self):\r
         if self._Prebuild is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -516,7 +536,8 @@ class DscBuildData(PlatformBuildClassObject):
                 self._Prebuild = ''\r
         return self._Prebuild\r
 \r
-    def _GetPostbuild(self):\r
+    @property\r
+    def Postbuild(self):\r
         if self._Postbuild is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -525,7 +546,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._Postbuild\r
 \r
     ## Retrieve FLASH_DEFINITION\r
-    def _GetBuildNumber(self):\r
+    @property\r
+    def BuildNumber(self):\r
         if self._BuildNumber is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -534,7 +556,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._BuildNumber\r
 \r
     ## Retrieve MAKEFILE_NAME\r
-    def _GetMakefileName(self):\r
+    @property\r
+    def MakefileName(self):\r
         if self._MakefileName is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -543,7 +566,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._MakefileName\r
 \r
     ## Retrieve BsBaseAddress\r
-    def _GetBsBaseAddress(self):\r
+    @property\r
+    def BsBaseAddress(self):\r
         if self._BsBaseAddress is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -552,7 +576,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._BsBaseAddress\r
 \r
     ## Retrieve RtBaseAddress\r
-    def _GetRtBaseAddress(self):\r
+    @property\r
+    def RtBaseAddress(self):\r
         if self._RtBaseAddress is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -561,7 +586,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._RtBaseAddress\r
 \r
     ## Retrieve the top address for the load fix address\r
-    def _GetLoadFixAddress(self):\r
+    @property\r
+    def LoadFixAddress(self):\r
         if self._LoadFixAddress is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -591,7 +617,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._LoadFixAddress\r
 \r
     ## Retrieve RFCLanguage filter\r
-    def _GetRFCLanguages(self):\r
+    @property\r
+    def RFCLanguages(self):\r
         if self._RFCLanguages is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -600,15 +627,18 @@ class DscBuildData(PlatformBuildClassObject):
         return self._RFCLanguages\r
 \r
     ## Retrieve ISOLanguage filter\r
-    def _GetISOLanguages(self):\r
+    @property\r
+    def ISOLanguages(self):\r
         if self._ISOLanguages is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
             if self._ISOLanguages is None:\r
                 self._ISOLanguages = []\r
         return self._ISOLanguages\r
+\r
     ## Retrieve the GUID string for VPD tool\r
-    def _GetVpdToolGuid(self):\r
+    @property\r
+    def VpdToolGuid(self):\r
         if self._VpdToolGuid is None:\r
             if self._Header is None:\r
                 self._GetHeaderInfo()\r
@@ -617,7 +647,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._VpdToolGuid\r
 \r
     ## Retrieve [SkuIds] section information\r
-    def _GetSkuIds(self):\r
+    @property\r
+    def SkuIds(self):\r
         if self._SkuIds is None:\r
             self._SkuIds = OrderedDict()\r
             RecordList = self._RawData[MODEL_EFI_SKU_ID, self._Arch]\r
@@ -669,7 +700,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self.DefaultStores\r
 \r
     ## Retrieve [Components] section information\r
-    def _GetModules(self):\r
+    @property\r
+    def Modules(self):\r
         if self._Modules is not None:\r
             return self._Modules\r
 \r
@@ -768,13 +800,15 @@ class DscBuildData(PlatformBuildClassObject):
         return self._Modules\r
 \r
     ## Retrieve all possible library instances used in this platform\r
-    def _GetLibraryInstances(self):\r
+    @property\r
+    def LibraryInstances(self):\r
         if self._LibraryInstances is None:\r
-            self._GetLibraryClasses()\r
+            self.LibraryClasses\r
         return self._LibraryInstances\r
 \r
     ## Retrieve [LibraryClasses] information\r
-    def _GetLibraryClasses(self):\r
+    @property\r
+    def LibraryClasses(self):\r
         if self._LibraryClasses is None:\r
             self._LibraryInstances = []\r
             #\r
@@ -922,6 +956,7 @@ class DscBuildData(PlatformBuildClassObject):
                 if isinstance(pcd, StructurePcd) and pcd.SkuOverrideValues:\r
                     Pcds[pcdname].SkuOverrideValues = {skuid:pcd.SkuOverrideValues[skuid] for skuid in pcd.SkuOverrideValues if skuid in available_sku}\r
         return Pcds\r
+\r
     def CompleteHiiPcdsDefaultStores(self, Pcds):\r
         HiiPcd = [Pcds[pcd] for pcd in Pcds if Pcds[pcd].Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]]\r
         DefaultStoreMgr = DefaultStore(self.DefaultStores)\r
@@ -1102,7 +1137,8 @@ class DscBuildData(PlatformBuildClassObject):
         return PcdValue\r
 \r
     ## Retrieve all PCD settings in platform\r
-    def _GetPcds(self):\r
+    @property\r
+    def Pcds(self):\r
         if self._Pcds is None:\r
             self._Pcds = OrderedDict()\r
             self.__ParsePcdFromCommandLine()\r
@@ -1127,7 +1163,8 @@ class DscBuildData(PlatformBuildClassObject):
         return self._Pcds\r
 \r
     ## Retrieve [BuildOptions]\r
-    def _GetBuildOptions(self):\r
+    @property\r
+    def BuildOptions(self):\r
         if self._BuildOptions is None:\r
             self._BuildOptions = OrderedDict()\r
             #\r
@@ -1226,7 +1263,6 @@ class DscBuildData(PlatformBuildClassObject):
                 Pcd.PcdFieldValueFromComm[field][2] = FieldValues[field][1][1]\r
         return StruPcds\r
 \r
-\r
     def OverrideByCommOverAll(self,AllPcds):\r
         def CheckStructureInComm(commpcds):\r
             if not commpcds:\r
@@ -2799,7 +2835,8 @@ class DscBuildData(PlatformBuildClassObject):
             Module.MetaFile = FilePath\r
             self.Modules.append(Module)\r
 \r
-    def _GetToolChainFamily(self):\r
+    @property\r
+    def ToolChainFamily(self):\r
         self._ToolChainFamily = TAB_COMPILER_MSFT\r
         BuildConfigurationFile = os.path.normpath(os.path.join(GlobalData.gConfDirectory, "target.txt"))\r
         if os.path.isfile(BuildConfigurationFile) == True:\r
@@ -2834,6 +2871,7 @@ class DscBuildData(PlatformBuildClassObject):
         if (Name, Guid) not in self.Pcds:\r
             self.Pcds[Name, Guid] = PcdClassObject(Name, Guid, '', '', '', '', '', {}, False, None)\r
         self.Pcds[Name, Guid].DefaultValue = Value\r
+\r
     @property\r
     def DecPcds(self):\r
         if self._DecPcds is None:\r
@@ -2849,34 +2887,3 @@ class DscBuildData(PlatformBuildClassObject):
                 PkgSet.update(ModuleData.Packages)\r
             self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)\r
         return self._DecPcds\r
-    _Macros             = property(_GetMacros)\r
-    Arch                = property(_GetArch)\r
-    Platform            = property(_GetPlatformName)\r
-    PlatformName        = property(_GetPlatformName)\r
-    Guid                = property(_GetFileGuid)\r
-    Version             = property(_GetVersion)\r
-    DscSpecification    = property(_GetDscSpec)\r
-    OutputDirectory     = property(_GetOutpuDir)\r
-    SupArchList         = property(_GetSupArch)\r
-    BuildTargets        = property(_GetBuildTarget)\r
-    SkuName             = property(_GetSkuName, _SetSkuName)\r
-    PcdInfoFlag         = property(_GetPcdInfoFlag)\r
-    VarCheckFlag        = property(_GetVarCheckFlag)\r
-    FlashDefinition     = property(_GetFdfFile)\r
-    Prebuild            = property(_GetPrebuild)\r
-    Postbuild           = property(_GetPostbuild)\r
-    BuildNumber         = property(_GetBuildNumber)\r
-    MakefileName        = property(_GetMakefileName)\r
-    BsBaseAddress       = property(_GetBsBaseAddress)\r
-    RtBaseAddress       = property(_GetRtBaseAddress)\r
-    LoadFixAddress      = property(_GetLoadFixAddress)\r
-    RFCLanguages        = property(_GetRFCLanguages)\r
-    ISOLanguages        = property(_GetISOLanguages)\r
-    VpdToolGuid         = property(_GetVpdToolGuid)\r
-    SkuIds              = property(_GetSkuIds)\r
-    Modules             = property(_GetModules)\r
-    LibraryInstances    = property(_GetLibraryInstances)\r
-    LibraryClasses      = property(_GetLibraryClasses)\r
-    Pcds                = property(_GetPcds)\r
-    BuildOptions        = property(_GetBuildOptions)\r
-    ToolChainFamily     = property(_GetToolChainFamily)\r
index d666c092a6de67faac6d9c1408ac07c0c8f9b6a3..0016cd30ce7ac9caf09f095c06c5ddd462663c2f 100644 (file)
@@ -157,40 +157,42 @@ class InfBuildData(ModuleBuildClassObject):
         self._BuildOptions          = None\r
         self._Depex                 = None\r
         self._DepexExpression       = None\r
-        self.__Macros               = None\r
+        self._MacroDict             = None\r
 \r
     ## Get current effective macros\r
-    def _GetMacros(self):\r
-        if self.__Macros is None:\r
-            self.__Macros = {}\r
+    @property\r
+    def _Macros(self):\r
+        if self._MacroDict is None:\r
+            self._MacroDict = {}\r
             # EDK_GLOBAL defined macros can be applied to EDK module\r
             if self.AutoGenVersion < 0x00010005:\r
-                self.__Macros.update(GlobalData.gEdkGlobal)\r
-                self.__Macros.update(GlobalData.gGlobalDefines)\r
-        return self.__Macros\r
+                self._MacroDict.update(GlobalData.gEdkGlobal)\r
+                self._MacroDict.update(GlobalData.gGlobalDefines)\r
+        return self._MacroDict\r
 \r
     ## Get architecture\r
-    def _GetArch(self):\r
+    @property\r
+    def Arch(self):\r
         return self._Arch\r
 \r
     ## Return the name of platform employing this module\r
-    def _GetPlatform(self):\r
+    @property\r
+    def Platform(self):\r
         return self._Platform\r
 \r
-    def _GetHeaderComments(self):\r
+\r
+    @property\r
+    def HeaderComments(self):\r
         if not self._HeaderComments:\r
-            self._HeaderComments = []\r
-            RecordList = self._RawData[MODEL_META_DATA_HEADER_COMMENT]\r
-            for Record in RecordList:\r
-                self._HeaderComments.append(Record[0])\r
+            self._HeaderComments = [a[0] for a in self._RawData[MODEL_META_DATA_HEADER_COMMENT]]\r
         return self._HeaderComments\r
-    def _GetTailComments(self):\r
+\r
+    @property\r
+    def TailComments(self):\r
         if not self._TailComments:\r
-            self._TailComments = []\r
-            RecordList = self._RawData[MODEL_META_DATA_TAIL_COMMENT]\r
-            for Record in RecordList:\r
-                self._TailComments.append(Record[0])\r
+            self._TailComments = [a[0] for a in self._RawData[MODEL_META_DATA_TAIL_COMMENT]]\r
         return self._TailComments\r
+\r
     ## Retrieve all information in [Defines] section\r
     #\r
     #   (Retriving all [Defines] information in one-shot is just to save time.)\r
@@ -371,7 +373,8 @@ class InfBuildData(ModuleBuildClassObject):
         self._Header_ = 'DUMMY'\r
 \r
     ## Retrieve file version\r
-    def _GetInfVersion(self):\r
+    @property\r
+    def AutoGenVersion(self):\r
         if self._AutoGenVersion is None:\r
             RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, self._Platform]\r
             for Record in RecordList:\r
@@ -389,7 +392,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._AutoGenVersion\r
 \r
     ## Retrieve BASE_NAME\r
-    def _GetBaseName(self):\r
+    @property\r
+    def BaseName(self):\r
         if self._BaseName is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -398,7 +402,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._BaseName\r
 \r
     ## Retrieve DxsFile\r
-    def _GetDxsFile(self):\r
+    @property\r
+    def DxsFile(self):\r
         if self._DxsFile is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -407,7 +412,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._DxsFile\r
 \r
     ## Retrieve MODULE_TYPE\r
-    def _GetModuleType(self):\r
+    @property\r
+    def ModuleType(self):\r
         if self._ModuleType is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -418,7 +424,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._ModuleType\r
 \r
     ## Retrieve COMPONENT_TYPE\r
-    def _GetComponentType(self):\r
+    @property\r
+    def ComponentType(self):\r
         if self._ComponentType is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -427,7 +434,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._ComponentType\r
 \r
     ## Retrieve "BUILD_TYPE"\r
-    def _GetBuildType(self):\r
+    @property\r
+    def BuildType(self):\r
         if self._BuildType is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -436,7 +444,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._BuildType\r
 \r
     ## Retrieve file guid\r
-    def _GetFileGuid(self):\r
+    @property\r
+    def Guid(self):\r
         if self._Guid is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -445,7 +454,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Guid\r
 \r
     ## Retrieve module version\r
-    def _GetVersion(self):\r
+    @property\r
+    def Version(self):\r
         if self._Version is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -454,7 +464,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Version\r
 \r
     ## Retrieve PCD_IS_DRIVER\r
-    def _GetPcdIsDriver(self):\r
+    @property\r
+    def PcdIsDriver(self):\r
         if self._PcdIsDriver is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -463,7 +474,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._PcdIsDriver\r
 \r
     ## Retrieve SHADOW\r
-    def _GetShadow(self):\r
+    @property\r
+    def Shadow(self):\r
         if self._Shadow is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -474,7 +486,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Shadow\r
 \r
     ## Retrieve CUSTOM_MAKEFILE\r
-    def _GetMakefile(self):\r
+    @property\r
+    def CustomMakefile(self):\r
         if self._CustomMakefile is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -483,7 +496,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._CustomMakefile\r
 \r
     ## Retrieve EFI_SPECIFICATION_VERSION\r
-    def _GetSpec(self):\r
+    @property\r
+    def Specification(self):\r
         if self._Specification is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -492,7 +506,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Specification\r
 \r
     ## Retrieve LIBRARY_CLASS\r
-    def _GetLibraryClass(self):\r
+    @property\r
+    def LibraryClass(self):\r
         if self._LibraryClass is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -501,7 +516,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._LibraryClass\r
 \r
     ## Retrieve ENTRY_POINT\r
-    def _GetEntryPoint(self):\r
+    @property\r
+    def ModuleEntryPointList(self):\r
         if self._ModuleEntryPointList is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -510,7 +526,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._ModuleEntryPointList\r
 \r
     ## Retrieve UNLOAD_IMAGE\r
-    def _GetUnloadImage(self):\r
+    @property\r
+    def ModuleUnloadImageList(self):\r
         if self._ModuleUnloadImageList is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -519,7 +536,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._ModuleUnloadImageList\r
 \r
     ## Retrieve CONSTRUCTOR\r
-    def _GetConstructor(self):\r
+    @property\r
+    def ConstructorList(self):\r
         if self._ConstructorList is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -528,7 +546,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._ConstructorList\r
 \r
     ## Retrieve DESTRUCTOR\r
-    def _GetDestructor(self):\r
+    @property\r
+    def DestructorList(self):\r
         if self._DestructorList is None:\r
             if self._Header_ is None:\r
                 self._GetHeaderInfo()\r
@@ -537,7 +556,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._DestructorList\r
 \r
     ## Retrieve definies other than above ones\r
-    def _GetDefines(self):\r
+    @property\r
+    def Defines(self):\r
         if len(self._Defs) == 0 and self._Header_ is None:\r
             self._GetHeaderInfo()\r
         return self._Defs\r
@@ -571,7 +591,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Binaries\r
 \r
     ## Retrieve binary files with error check.\r
-    def _GetBinaryFiles(self):\r
+    @property\r
+    def Binaries(self):\r
         Binaries = self._GetBinaries()\r
         if GlobalData.gIgnoreSource and Binaries == []:\r
             ErrorInfo = "The INF file does not contain any Binaries to use in creating the image\n"\r
@@ -580,7 +601,8 @@ class InfBuildData(ModuleBuildClassObject):
         return Binaries\r
 \r
     ## Retrieve source files\r
-    def _GetSourceFiles(self):\r
+    @property\r
+    def Sources(self):\r
         # Ignore all source files in a binary build mode\r
         if GlobalData.gIgnoreSource:\r
             self._Sources = []\r
@@ -626,7 +648,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Sources\r
 \r
     ## Retrieve library classes employed by this module\r
-    def _GetLibraryClassUses(self):\r
+    @property\r
+    def LibraryClasses(self):\r
         if self._LibraryClasses is None:\r
             self._LibraryClasses = OrderedDict()\r
             RecordList = self._RawData[MODEL_EFI_LIBRARY_CLASS, self._Arch, self._Platform]\r
@@ -639,7 +662,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._LibraryClasses\r
 \r
     ## Retrieve library names (for Edk.x style of modules)\r
-    def _GetLibraryNames(self):\r
+    @property\r
+    def Libraries(self):\r
         if self._Libraries is None:\r
             self._Libraries = []\r
             RecordList = self._RawData[MODEL_EFI_LIBRARY_INSTANCE, self._Arch, self._Platform]\r
@@ -651,11 +675,14 @@ class InfBuildData(ModuleBuildClassObject):
                     self._Libraries.append(LibraryName)\r
         return self._Libraries\r
 \r
-    def _GetProtocolComments(self):\r
-        self._GetProtocols()\r
+    @property\r
+    def ProtocolComments(self):\r
+        self.Protocols\r
         return self._ProtocolComments\r
+\r
     ## Retrieve protocols consumed/produced by this module\r
-    def _GetProtocols(self):\r
+    @property\r
+    def Protocols(self):\r
         if self._Protocols is None:\r
             self._Protocols = OrderedDict()\r
             self._ProtocolComments = OrderedDict()\r
@@ -676,11 +703,14 @@ class InfBuildData(ModuleBuildClassObject):
                 self._ProtocolComments[CName] = Comments\r
         return self._Protocols\r
 \r
-    def _GetPpiComments(self):\r
-        self._GetPpis()\r
+    @property\r
+    def PpiComments(self):\r
+        self.Ppis\r
         return self._PpiComments\r
+\r
     ## Retrieve PPIs consumed/produced by this module\r
-    def _GetPpis(self):\r
+    @property\r
+    def Ppis(self):\r
         if self._Ppis is None:\r
             self._Ppis = OrderedDict()\r
             self._PpiComments = OrderedDict()\r
@@ -701,11 +731,14 @@ class InfBuildData(ModuleBuildClassObject):
                 self._PpiComments[CName] = Comments\r
         return self._Ppis\r
 \r
-    def _GetGuidComments(self):\r
-        self._GetGuids()\r
+    @property\r
+    def GuidComments(self):\r
+        self.Guids\r
         return self._GuidComments\r
+\r
     ## Retrieve GUIDs consumed/produced by this module\r
-    def _GetGuids(self):\r
+    @property\r
+    def Guids(self):\r
         if self._Guids is None:\r
             self._Guids = OrderedDict()\r
             self._GuidComments = OrderedDict()\r
@@ -727,7 +760,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Guids\r
 \r
     ## Retrieve include paths necessary for this module (for Edk.x style of modules)\r
-    def _GetIncludes(self):\r
+    @property\r
+    def Includes(self):\r
         if self._Includes is None:\r
             self._Includes = []\r
             if self._SourceOverridePath:\r
@@ -781,7 +815,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Includes\r
 \r
     ## Retrieve packages this module depends on\r
-    def _GetPackages(self):\r
+    @property\r
+    def Packages(self):\r
         if self._Packages is None:\r
             self._Packages = []\r
             RecordList = self._RawData[MODEL_META_DATA_PACKAGE, self._Arch, self._Platform]\r
@@ -800,11 +835,14 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Packages\r
 \r
     ## Retrieve PCD comments\r
-    def _GetPcdComments(self):\r
-        self._GetPcds()\r
+    @property\r
+    def PcdComments(self):\r
+        self.Pcds\r
         return self._PcdComments\r
+\r
     ## Retrieve PCDs used in this module\r
-    def _GetPcds(self):\r
+    @property\r
+    def Pcds(self):\r
         if self._Pcds is None:\r
             self._Pcds = OrderedDict()\r
             self._PcdComments = OrderedDict()\r
@@ -816,7 +854,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Pcds\r
 \r
     ## Retrieve build options specific to this module\r
-    def _GetBuildOptions(self):\r
+    @property\r
+    def BuildOptions(self):\r
         if self._BuildOptions is None:\r
             self._BuildOptions = OrderedDict()\r
             RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, self._Platform]\r
@@ -833,7 +872,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._BuildOptions\r
 \r
     ## Retrieve dependency expression\r
-    def _GetDepex(self):\r
+    @property\r
+    def Depex(self):\r
         if self._Depex is None:\r
             self._Depex = tdict(False, 2)\r
             RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch]\r
@@ -904,7 +944,8 @@ class InfBuildData(ModuleBuildClassObject):
         return self._Depex\r
 \r
     ## Retrieve depedency expression\r
-    def _GetDepexExpression(self):\r
+    @property\r
+    def DepexExpression(self):\r
         if self._DepexExpression is None:\r
             self._DepexExpression = tdict(False, 2)\r
             RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch]\r
@@ -924,6 +965,7 @@ class InfBuildData(ModuleBuildClassObject):
 \r
     def GetGuidsUsedByPcd(self):\r
         return self._GuidsUsedByPcd\r
+\r
     ## Retrieve PCD for given type\r
     def _GetPcd(self, Type):\r
         Pcds = OrderedDict()\r
@@ -1114,54 +1156,8 @@ class InfBuildData(ModuleBuildClassObject):
         return Pcds\r
 \r
     ## check whether current module is binary module\r
-    def _IsBinaryModule(self):\r
-        if self.Binaries and not self.Sources:\r
-            return True\r
-        elif GlobalData.gIgnoreSource:\r
+    @property\r
+    def IsBinaryModule(self):\r
+        if (self.Binaries and not self.Sources) or GlobalData.gIgnoreSource:\r
             return True\r
-        else:\r
-            return False\r
-\r
-    _Macros = property(_GetMacros)\r
-    Arch = property(_GetArch)\r
-    Platform = property(_GetPlatform)\r
-\r
-    HeaderComments = property(_GetHeaderComments)\r
-    TailComments = property(_GetTailComments)\r
-    AutoGenVersion          = property(_GetInfVersion)\r
-    BaseName                = property(_GetBaseName)\r
-    ModuleType              = property(_GetModuleType)\r
-    ComponentType           = property(_GetComponentType)\r
-    BuildType               = property(_GetBuildType)\r
-    Guid                    = property(_GetFileGuid)\r
-    Version                 = property(_GetVersion)\r
-    PcdIsDriver             = property(_GetPcdIsDriver)\r
-    Shadow                  = property(_GetShadow)\r
-    CustomMakefile          = property(_GetMakefile)\r
-    Specification           = property(_GetSpec)\r
-    LibraryClass            = property(_GetLibraryClass)\r
-    ModuleEntryPointList    = property(_GetEntryPoint)\r
-    ModuleUnloadImageList   = property(_GetUnloadImage)\r
-    ConstructorList         = property(_GetConstructor)\r
-    DestructorList          = property(_GetDestructor)\r
-    Defines                 = property(_GetDefines)\r
-    DxsFile                 = property(_GetDxsFile)\r
-\r
-    Binaries                = property(_GetBinaryFiles)\r
-    Sources                 = property(_GetSourceFiles)\r
-    LibraryClasses          = property(_GetLibraryClassUses)\r
-    Libraries               = property(_GetLibraryNames)\r
-    Protocols               = property(_GetProtocols)\r
-    ProtocolComments        = property(_GetProtocolComments)\r
-    Ppis                    = property(_GetPpis)\r
-    PpiComments             = property(_GetPpiComments)\r
-    Guids                   = property(_GetGuids)\r
-    GuidComments            = property(_GetGuidComments)\r
-    Includes                = property(_GetIncludes)\r
-    Packages                = property(_GetPackages)\r
-    Pcds                    = property(_GetPcds)\r
-    PcdComments             = property(_GetPcdComments)\r
-    BuildOptions            = property(_GetBuildOptions)\r
-    Depex                   = property(_GetDepex)\r
-    DepexExpression         = property(_GetDepexExpression)\r
-    IsBinaryModule          = property(_IsBinaryModule)\r
+        return False\r
index 79e3180d5e77d79f867c9da239807e84854c6fd0..f1707c06feb9127080c41a04aa6bbe09c7163bcd 100644 (file)
@@ -213,11 +213,13 @@ class MetaFileParser(object):
         self._PostProcessed = True\r
 \r
     ## Get the parse complete flag\r
-    def _GetFinished(self):\r
+    @property\r
+    def Finished(self):\r
         return self._Finished\r
 \r
     ## Set the complete flag\r
-    def _SetFinished(self, Value):\r
+    @Finished.setter\r
+    def Finished(self, Value):\r
         self._Finished = Value\r
 \r
     ## Remove records that do not match given Filter Arch\r
@@ -416,7 +418,9 @@ class MetaFileParser(object):
                 )\r
     def GetValidExpression(self, TokenSpaceGuid, PcdCName):\r
         return self._Table.GetValidExpression(TokenSpaceGuid, PcdCName)\r
-    def _GetMacros(self):\r
+\r
+    @property\r
+    def _Macros(self):\r
         Macros = {}\r
         Macros.update(self._FileLocalMacros)\r
         Macros.update(self._GetApplicableSectionMacro())\r
@@ -478,9 +482,6 @@ class MetaFileParser(object):
         return Macros\r
 \r
     _SectionParser = {}\r
-    Finished = property(_GetFinished, _SetFinished)\r
-    _Macros = property(_GetMacros)\r
-\r
 \r
 ## INF file parser class\r
 #\r
@@ -1252,7 +1253,8 @@ class DscParser(MetaFileParser):
                 )\r
 \r
     ## Override parent's method since we'll do all macro replacements in parser\r
-    def _GetMacros(self):\r
+    @property\r
+    def _Macros(self):\r
         Macros = {}\r
         Macros.update(self._FileLocalMacros)\r
         Macros.update(self._GetApplicableSectionMacro())\r
@@ -1673,8 +1675,6 @@ class DscParser(MetaFileParser):
         MODEL_META_DATA_SUBSECTION_HEADER               :   _SubsectionHeaderParser,\r
     }\r
 \r
-    _Macros = property(_GetMacros)\r
-\r
 ## DEC file parser class\r
 #\r
 #   @param      FilePath        The path of platform description file\r
index e2f373745fc0c370ee0bc82d7c1c042e7f56f7f4..3bb287b8b24c69a3480a0226e2a7167548e06cf7 100644 (file)
@@ -302,25 +302,21 @@ determine whether database file is out of date!\n")
         return PackageList\r
 \r
     ## Summarize all platforms in the database\r
-    def _GetPlatformList(self):\r
-        PlatformList = []\r
+    def PlatformList(self):\r
+        RetVal = []\r
         for PlatformFile in self.TblFile.GetFileList(MODEL_FILE_DSC):\r
             try:\r
-                Platform = self.BuildObject[PathClass(PlatformFile), TAB_COMMON]\r
+                RetVal.append(self.BuildObject[PathClass(PlatformFile), TAB_COMMON])\r
             except:\r
-                Platform = None\r
-            if Platform is not None:\r
-                PlatformList.append(Platform)\r
-        return PlatformList\r
+                pass\r
+        return RetVal\r
 \r
-    def _MapPlatform(self, Dscfile):\r
+    def MapPlatform(self, Dscfile):\r
         Platform = self.BuildObject[PathClass(Dscfile), TAB_COMMON]\r
         if Platform is None:\r
             EdkLogger.error('build', PARSER_ERROR, "Failed to parser DSC file: %s" % Dscfile)\r
         return Platform\r
 \r
-    PlatformList = property(_GetPlatformList)\r
-\r
 ##\r
 #\r
 # This acts like the main() function for the script, unless it is 'import'ed into another\r
index e6a9c6ef7199e7a4e632fb781ffbd20099e11d8d..d74082fc2666154ae59293b66dd770107a3cba7c 100644 (file)
@@ -1006,7 +1006,7 @@ class Build():
         else:\r
             self.Db.InitDatabase()\r
             self.Db_Flag = True\r
-            Platform = self.Db._MapPlatform(str(self.PlatformFile))\r
+            Platform = self.Db.MapPlatform(str(self.PlatformFile))\r
             self.Prebuild = str(Platform.Prebuild)\r
         if self.Prebuild:\r
             PrebuildList = []\r
@@ -1045,7 +1045,7 @@ class Build():
         if 'POSTBUILD' in GlobalData.gCommandLineDefines:\r
             self.Postbuild = GlobalData.gCommandLineDefines.get('POSTBUILD')\r
         else:\r
-            Platform = self.Db._MapPlatform(str(self.PlatformFile))\r
+            Platform = self.Db.MapPlatform(str(self.PlatformFile))\r
             self.Postbuild = str(Platform.Postbuild)\r
         if self.Postbuild:\r
             PostbuildList = []\r