]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DecBuildData.py
BaseTools: Improve build performance of structure PCD value generation
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DecBuildData.py
index 61f15086d0ae0f70e33801ef4539fcc721d5041b..18101a0add6ce820e30534e350678adfec4fd9e9 100644 (file)
@@ -95,6 +95,7 @@ class DecBuildData(PackageBuildClassObject):
         self._Ppis              = None\r
         self._Guids             = None\r
         self._Includes          = None\r
+        self._CommonIncludes    = None\r
         self._LibraryClasses    = None\r
         self._Pcds              = None\r
         self.__Macros           = None\r
@@ -296,7 +297,8 @@ class DecBuildData(PackageBuildClassObject):
 \r
     ## Retrieve public include paths declared in this package\r
     def _GetInclude(self):\r
-        if self._Includes == None:\r
+        if self._Includes == None or self._CommonIncludes is None:\r
+            self._CommonIncludes = []\r
             self._Includes = []\r
             self._PrivateIncludes = []\r
             PublicInclues = []\r
@@ -324,7 +326,8 @@ 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
-\r
+                if Record[3] == "COMMON":\r
+                    self._CommonIncludes.append(File)\r
         return self._Includes\r
 \r
     ## Retrieve library class declarations (not used in build at present)\r
@@ -452,6 +455,11 @@ class DecBuildData(PackageBuildClassObject):
             Pcds[pcd.TokenCName, pcd.TokenSpaceGuidCName, self._PCD_TYPE_STRING_[Type]] = pcd\r
 \r
         return Pcds\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