]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
BaseTools: Fixed issue of incorrect Module Unique Name
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / ModuleAutoGen.py
index d19c03862094910172fe0d38e5b2d4fafe3379f4..076ce0e39c37cc4661d4aa27dfe07ae751842925 100644 (file)
@@ -218,7 +218,7 @@ class ModuleAutoGen(AutoGen):
         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
@@ -255,7 +255,6 @@ class ModuleAutoGen(AutoGen):
 \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
@@ -296,7 +295,7 @@ class ModuleAutoGen(AutoGen):
         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
@@ -1114,6 +1113,21 @@ class ModuleAutoGen(AutoGen):
     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
@@ -1686,6 +1700,7 @@ class ModuleAutoGen(AutoGen):
         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
@@ -1729,7 +1744,6 @@ class ModuleAutoGen(AutoGen):
         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