summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/Workspace/DecBuildData.py
diff options
context:
space:
mode:
authorFeng, Bob C <bob.c.feng@intel.com>2018-02-28 13:59:19 +0800
committerLiming Gao <liming.gao@intel.com>2018-02-28 16:45:55 +0800
commit0a57a9782bef8ee11d8de937c149eb7ff22647c9 (patch)
tree5d74eb018b42973707e7dfb827d8de139875abf0 /BaseTools/Source/Python/Workspace/DecBuildData.py
parent06140766c13fb9288a922990ffde77fca93fc71d (diff)
downloadedk2-0a57a9782bef8ee11d8de937c149eb7ff22647c9.tar.gz
edk2-0a57a9782bef8ee11d8de937c149eb7ff22647c9.tar.bz2
edk2-0a57a9782bef8ee11d8de937c149eb7ff22647c9.zip
BaseTools: Improve build performance of structure PCD value generation
Add cache for building PcdValueInit.c. If PcdValueInit.c is not changed, it will not be regenerated. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Workspace/DecBuildData.py')
-rw-r--r--BaseTools/Source/Python/Workspace/DecBuildData.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/BaseTools/Source/Python/Workspace/DecBuildData.py b/BaseTools/Source/Python/Workspace/DecBuildData.py
index 61f15086d0..18101a0add 100644
--- a/BaseTools/Source/Python/Workspace/DecBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DecBuildData.py
@@ -95,6 +95,7 @@ class DecBuildData(PackageBuildClassObject):
self._Ppis = None
self._Guids = None
self._Includes = None
+ self._CommonIncludes = None
self._LibraryClasses = None
self._Pcds = None
self.__Macros = None
@@ -296,7 +297,8 @@ class DecBuildData(PackageBuildClassObject):
## Retrieve public include paths declared in this package
def _GetInclude(self):
- if self._Includes == None:
+ if self._Includes == None or self._CommonIncludes is None:
+ self._CommonIncludes = []
self._Includes = []
self._PrivateIncludes = []
PublicInclues = []
@@ -324,7 +326,8 @@ class DecBuildData(PackageBuildClassObject):
PublicInclues.append(File)
if File in self._PrivateIncludes:
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)
-
+ if Record[3] == "COMMON":
+ self._CommonIncludes.append(File)
return self._Includes
## Retrieve library class declarations (not used in build at present)
@@ -452,6 +455,11 @@ class DecBuildData(PackageBuildClassObject):
Pcds[pcd.TokenCName, pcd.TokenSpaceGuidCName, self._PCD_TYPE_STRING_[Type]] = pcd
return Pcds
+ @property
+ def CommonIncludes(self):
+ if self._CommonIncludes is None:
+ self.Includes
+ return self._CommonIncludes
_Macros = property(_GetMacros)