]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools: Append FILE_GUID to BaseName.
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / AutoGen.py
index b2d9f6a8efb2e5177e309f31fe16bf68d58b26b9..d1ed0a65abce390f694b935722f9d12318f06a54 100644 (file)
@@ -17,6 +17,7 @@ import Common.LongFilePathOs as os
 import re\r
 import os.path as path\r
 import copy\r
+import uuid\r
 \r
 import GenC\r
 import GenMake\r
@@ -2285,12 +2286,26 @@ class ModuleAutoGen(AutoGen):
                 \r
         return self._FixedAtBuildPcds        \r
 \r
+    def _GetUniqueBaseName(self):\r
+        BaseName = self.Name\r
+        for Module in self.PlatformInfo.ModuleAutoGenList:\r
+            if Module.MetaFile == self.MetaFile:\r
+                continue\r
+            if Module.Name == self.Name:\r
+                EdkLogger.warn('build', 'Modules have same BaseName:\n  %s\n  %s' % (Module.MetaFile, self.MetaFile))\r
+                if uuid.UUID(Module.Guid) == uuid.UUID(self.Guid):\r
+                    EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n'\r
+                                    '  %s\n  %s' % (Module.MetaFile, self.MetaFile))\r
+                BaseName = '%s_%s' % (self.Name, self.Guid)\r
+        return BaseName\r
+\r
     # Macros could be used in build_rule.txt (also Makefile)\r
     def _GetMacros(self):\r
         if self._Macro == None:\r
             self._Macro = sdict()\r
             self._Macro["WORKSPACE"             ] = self.WorkspaceDir\r
             self._Macro["MODULE_NAME"           ] = self.Name\r
+            self._Macro["MODULE_NAME_GUID"      ] = self._GetUniqueBaseName()\r
             self._Macro["MODULE_GUID"           ] = self.Guid\r
             self._Macro["MODULE_VERSION"        ] = self.Version\r
             self._Macro["MODULE_TYPE"           ] = self.ModuleType\r