BaseTools: Append FILE_GUID to BaseName.
This patch makes sure the EFI file in $(BIN_DIR) is unique. If there are modules with same BaseName, the FILE_GUID is appended. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yingke Liu <yingke.d.liu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17608 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -17,6 +17,7 @@ import Common.LongFilePathOs as os
|
||||
import re
|
||||
import os.path as path
|
||||
import copy
|
||||
import uuid
|
||||
|
||||
import GenC
|
||||
import GenMake
|
||||
@ -2285,12 +2286,26 @@ class ModuleAutoGen(AutoGen):
|
||||
|
||||
return self._FixedAtBuildPcds
|
||||
|
||||
def _GetUniqueBaseName(self):
|
||||
BaseName = self.Name
|
||||
for Module in self.PlatformInfo.ModuleAutoGenList:
|
||||
if Module.MetaFile == self.MetaFile:
|
||||
continue
|
||||
if Module.Name == self.Name:
|
||||
EdkLogger.warn('build', 'Modules have same BaseName:\n %s\n %s' % (Module.MetaFile, self.MetaFile))
|
||||
if uuid.UUID(Module.Guid) == uuid.UUID(self.Guid):
|
||||
EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n'
|
||||
' %s\n %s' % (Module.MetaFile, self.MetaFile))
|
||||
BaseName = '%s_%s' % (self.Name, self.Guid)
|
||||
return BaseName
|
||||
|
||||
# Macros could be used in build_rule.txt (also Makefile)
|
||||
def _GetMacros(self):
|
||||
if self._Macro == None:
|
||||
self._Macro = sdict()
|
||||
self._Macro["WORKSPACE" ] = self.WorkspaceDir
|
||||
self._Macro["MODULE_NAME" ] = self.Name
|
||||
self._Macro["MODULE_NAME_GUID" ] = self._GetUniqueBaseName()
|
||||
self._Macro["MODULE_GUID" ] = self.Guid
|
||||
self._Macro["MODULE_VERSION" ] = self.Version
|
||||
self._Macro["MODULE_TYPE" ] = self.ModuleType
|
||||
|
Reference in New Issue
Block a user