EdkLogger.debug(EdkLogger.DEBUG_9, "AutoGen module [%s] [%s]" % (ModuleFile, Arch))\r
GlobalData.gProcessingFile = "%s [%s, %s, %s]" % (ModuleFile, Arch, Toolchain, Target)\r
\r
- self.Workspace = None\r
+ self.Workspace = Workspace\r
self.WorkspaceDir = ""\r
self.PlatformInfo = None\r
self.DataPipe = DataPipe\r
\r
def __init_platform_info__(self):\r
pinfo = self.DataPipe.Get("P_Info")\r
- self.Workspace = WorkSpaceInfo(pinfo.get("WorkspaceDir"),pinfo.get("ActivePlatform"),pinfo.get("Target"),pinfo.get("ToolChain"),pinfo.get("ArchList"))\r
self.WorkspaceDir = pinfo.get("WorkspaceDir")\r
self.PlatformInfo = PlatformInfo(self.Workspace,pinfo.get("ActivePlatform"),pinfo.get("Target"),pinfo.get("ToolChain"),pinfo.get("Arch"),self.DataPipe)\r
## hash() operator of ModuleAutoGen\r
ModuleNames = self.DataPipe.Get("M_Name")\r
if not ModuleNames:\r
return self.Name\r
- return ModuleNames.get(self.Name,self.Name)\r
+ return ModuleNames.get((self.Name,self.MetaFile),self.Name)\r
\r
# Macros could be used in build_rule.txt (also Makefile)\r
@cached_property\r
def IncludePathLength(self):\r
return sum(len(inc)+1 for inc in self.IncludePathList)\r
\r
+ ## Get the list of include paths from the packages\r
+ #\r
+ # @IncludesList list The list path\r
+ #\r
+ @cached_property\r
+ def PackageIncludePathList(self):\r
+ IncludesList = []\r
+ for Package in self.Module.Packages:\r
+ PackageDir = mws.join(self.WorkspaceDir, Package.MetaFile.Dir)\r
+ IncludesList = Package.Includes\r
+ if Package._PrivateIncludes:\r
+ if not self.MetaFile.Path.startswith(PackageDir):\r
+ IncludesList = list(set(Package.Includes).difference(set(Package._PrivateIncludes)))\r
+ return IncludesList\r
+\r
## Get HII EX PCDs which maybe used by VFR\r
#\r
# efivarstore used by VFR may relate with HII EX PCDs\r
if not self.IsLibrary and CreateLibraryMakeFile:\r
for LibraryAutoGen in self.LibraryAutoGenList:\r
LibraryAutoGen.CreateMakeFile()\r
+\r
# Don't enable if hash feature enabled, CanSkip uses timestamps to determine build skipping\r
if not GlobalData.gUseHashCache and self.CanSkip():\r
return\r
if not self.IsLibrary and CreateLibraryCodeFile:\r
for LibraryAutoGen in self.LibraryAutoGenList:\r
LibraryAutoGen.CreateCodeFile()\r
-\r
# Don't enable if hash feature enabled, CanSkip uses timestamps to determine build skipping\r
if not GlobalData.gUseHashCache and self.CanSkip():\r
return\r