BaseTools: Remove unused logic for EDKI
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1350 Remove EDK module type support from BaseTools python code. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
@ -145,10 +145,6 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
@cached_property
|
||||
def _Macros(self):
|
||||
RetVal = {}
|
||||
# EDK_GLOBAL defined macros can be applied to EDK module
|
||||
if self.AutoGenVersion < 0x00010005:
|
||||
RetVal.update(GlobalData.gEdkGlobal)
|
||||
RetVal.update(GlobalData.gGlobalDefines)
|
||||
return RetVal
|
||||
|
||||
## Get architecture
|
||||
@ -246,106 +242,50 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
#
|
||||
# Retrieve information in sections specific to Edk.x modules
|
||||
#
|
||||
if self.AutoGenVersion >= 0x00010005:
|
||||
if not self._ModuleType:
|
||||
EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE,
|
||||
"MODULE_TYPE is not given", File=self.MetaFile)
|
||||
if self._ModuleType not in SUP_MODULE_LIST:
|
||||
RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, self._Platform]
|
||||
for Record in RecordList:
|
||||
Name = Record[1]
|
||||
if Name == "MODULE_TYPE":
|
||||
LineNo = Record[6]
|
||||
break
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED,
|
||||
"MODULE_TYPE %s is not supported for EDK II, valid values are:\n %s" % (self._ModuleType, ' '.join(l for l in SUP_MODULE_LIST)),
|
||||
File=self.MetaFile, Line=LineNo)
|
||||
if (self._Specification is None) or (not 'PI_SPECIFICATION_VERSION' in self._Specification) or (int(self._Specification['PI_SPECIFICATION_VERSION'], 16) < 0x0001000A):
|
||||
if self._ModuleType == SUP_MODULE_SMM_CORE:
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "SMM_CORE module type can't be used in the module with PI_SPECIFICATION_VERSION less than 0x0001000A", File=self.MetaFile)
|
||||
if (self._Specification is None) or (not 'PI_SPECIFICATION_VERSION' in self._Specification) or (int(self._Specification['PI_SPECIFICATION_VERSION'], 16) < 0x00010032):
|
||||
if self._ModuleType == SUP_MODULE_MM_CORE_STANDALONE:
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "MM_CORE_STANDALONE module type can't be used in the module with PI_SPECIFICATION_VERSION less than 0x00010032", File=self.MetaFile)
|
||||
if self._ModuleType == SUP_MODULE_MM_STANDALONE:
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "MM_STANDALONE module type can't be used in the module with PI_SPECIFICATION_VERSION less than 0x00010032", File=self.MetaFile)
|
||||
if 'PCI_DEVICE_ID' in self._Defs and 'PCI_VENDOR_ID' in self._Defs \
|
||||
and 'PCI_CLASS_CODE' in self._Defs and 'PCI_REVISION' in self._Defs:
|
||||
self._BuildType = 'UEFI_OPTIONROM'
|
||||
if 'PCI_COMPRESS' in self._Defs:
|
||||
if self._Defs['PCI_COMPRESS'] not in ('TRUE', 'FALSE'):
|
||||
EdkLogger.error("build", FORMAT_INVALID, "Expected TRUE/FALSE for PCI_COMPRESS: %s" % self.MetaFile)
|
||||
if not self._ModuleType:
|
||||
EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE,
|
||||
"MODULE_TYPE is not given", File=self.MetaFile)
|
||||
if self._ModuleType not in SUP_MODULE_LIST:
|
||||
RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, self._Platform]
|
||||
for Record in RecordList:
|
||||
Name = Record[1]
|
||||
if Name == "MODULE_TYPE":
|
||||
LineNo = Record[6]
|
||||
break
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED,
|
||||
"MODULE_TYPE %s is not supported for EDK II, valid values are:\n %s" % (self._ModuleType, ' '.join(l for l in SUP_MODULE_LIST)),
|
||||
File=self.MetaFile, Line=LineNo)
|
||||
if (self._Specification is None) or (not 'PI_SPECIFICATION_VERSION' in self._Specification) or (int(self._Specification['PI_SPECIFICATION_VERSION'], 16) < 0x0001000A):
|
||||
if self._ModuleType == SUP_MODULE_SMM_CORE:
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "SMM_CORE module type can't be used in the module with PI_SPECIFICATION_VERSION less than 0x0001000A", File=self.MetaFile)
|
||||
if (self._Specification is None) or (not 'PI_SPECIFICATION_VERSION' in self._Specification) or (int(self._Specification['PI_SPECIFICATION_VERSION'], 16) < 0x00010032):
|
||||
if self._ModuleType == SUP_MODULE_MM_CORE_STANDALONE:
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "MM_CORE_STANDALONE module type can't be used in the module with PI_SPECIFICATION_VERSION less than 0x00010032", File=self.MetaFile)
|
||||
if self._ModuleType == SUP_MODULE_MM_STANDALONE:
|
||||
EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "MM_STANDALONE module type can't be used in the module with PI_SPECIFICATION_VERSION less than 0x00010032", File=self.MetaFile)
|
||||
if 'PCI_DEVICE_ID' in self._Defs and 'PCI_VENDOR_ID' in self._Defs \
|
||||
and 'PCI_CLASS_CODE' in self._Defs and 'PCI_REVISION' in self._Defs:
|
||||
self._BuildType = 'UEFI_OPTIONROM'
|
||||
if 'PCI_COMPRESS' in self._Defs:
|
||||
if self._Defs['PCI_COMPRESS'] not in ('TRUE', 'FALSE'):
|
||||
EdkLogger.error("build", FORMAT_INVALID, "Expected TRUE/FALSE for PCI_COMPRESS: %s" % self.MetaFile)
|
||||
|
||||
elif 'UEFI_HII_RESOURCE_SECTION' in self._Defs \
|
||||
and self._Defs['UEFI_HII_RESOURCE_SECTION'] == 'TRUE':
|
||||
self._BuildType = 'UEFI_HII'
|
||||
else:
|
||||
self._BuildType = self._ModuleType.upper()
|
||||
|
||||
if self._DxsFile:
|
||||
File = PathClass(NormPath(self._DxsFile), self._ModuleDir, Arch=self._Arch)
|
||||
# check the file validation
|
||||
ErrorCode, ErrorInfo = File.Validate(".dxs", CaseSensitive=False)
|
||||
if ErrorCode != 0:
|
||||
EdkLogger.error('build', ErrorCode, ExtraData=ErrorInfo,
|
||||
File=self.MetaFile, Line=LineNo)
|
||||
if not self._DependencyFileList:
|
||||
self._DependencyFileList = []
|
||||
self._DependencyFileList.append(File)
|
||||
elif 'UEFI_HII_RESOURCE_SECTION' in self._Defs \
|
||||
and self._Defs['UEFI_HII_RESOURCE_SECTION'] == 'TRUE':
|
||||
self._BuildType = 'UEFI_HII'
|
||||
else:
|
||||
if not self._ComponentType:
|
||||
EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE,
|
||||
"COMPONENT_TYPE is not given", File=self.MetaFile)
|
||||
self._BuildType = self._ComponentType.upper()
|
||||
if self._ComponentType in COMPONENT_TO_MODULE_MAP_DICT:
|
||||
self._ModuleType = COMPONENT_TO_MODULE_MAP_DICT[self._ComponentType]
|
||||
if self._ComponentType == EDK_COMPONENT_TYPE_LIBRARY:
|
||||
self._LibraryClass = [LibraryClassObject(self._BaseName, SUP_MODULE_LIST)]
|
||||
# make use some [nmake] section macros
|
||||
Macros = self._Macros
|
||||
Macros["EDK_SOURCE"] = GlobalData.gEcpSource
|
||||
Macros['PROCESSOR'] = self._Arch
|
||||
RecordList = self._RawData[MODEL_META_DATA_NMAKE, self._Arch, self._Platform]
|
||||
for Name, Value, Dummy, Arch, Platform, ID, LineNo in RecordList:
|
||||
Value = ReplaceMacro(Value, Macros, True)
|
||||
if Name == "IMAGE_ENTRY_POINT":
|
||||
if self._ModuleEntryPointList is None:
|
||||
self._ModuleEntryPointList = []
|
||||
self._ModuleEntryPointList.append(Value)
|
||||
elif Name == "DPX_SOURCE":
|
||||
File = PathClass(NormPath(Value), self._ModuleDir, Arch=self._Arch)
|
||||
# check the file validation
|
||||
ErrorCode, ErrorInfo = File.Validate(".dxs", CaseSensitive=False)
|
||||
if ErrorCode != 0:
|
||||
EdkLogger.error('build', ErrorCode, ExtraData=ErrorInfo,
|
||||
File=self.MetaFile, Line=LineNo)
|
||||
if not self._DependencyFileList:
|
||||
self._DependencyFileList = []
|
||||
self._DependencyFileList.append(File)
|
||||
else:
|
||||
ToolList = self._NMAKE_FLAG_PATTERN_.findall(Name)
|
||||
if len(ToolList) == 1:
|
||||
if self._BuildOptions is None:
|
||||
self._BuildOptions = OrderedDict()
|
||||
self._BuildType = self._ModuleType.upper()
|
||||
|
||||
if ToolList[0] in self._TOOL_CODE_:
|
||||
Tool = self._TOOL_CODE_[ToolList[0]]
|
||||
else:
|
||||
Tool = ToolList[0]
|
||||
ToolChain = "*_*_*_%s_FLAGS" % Tool
|
||||
# Edk.x only support MSFT tool chain
|
||||
# ignore not replaced macros in value
|
||||
ValueList = GetSplitList(' ' + Value, '/D')
|
||||
Dummy = ValueList[0]
|
||||
for Index in range(1, len(ValueList)):
|
||||
if ValueList[Index][-1] == '=' or ValueList[Index] == '':
|
||||
continue
|
||||
Dummy = Dummy + ' /D ' + ValueList[Index]
|
||||
Value = Dummy.strip()
|
||||
if (TAB_COMPILER_MSFT, ToolChain) not in self._BuildOptions:
|
||||
self._BuildOptions[TAB_COMPILER_MSFT, ToolChain] = Value
|
||||
else:
|
||||
OptionString = self._BuildOptions[TAB_COMPILER_MSFT, ToolChain]
|
||||
self._BuildOptions[TAB_COMPILER_MSFT, ToolChain] = OptionString + " " + Value
|
||||
if self._DxsFile:
|
||||
File = PathClass(NormPath(self._DxsFile), self._ModuleDir, Arch=self._Arch)
|
||||
# check the file validation
|
||||
ErrorCode, ErrorInfo = File.Validate(".dxs", CaseSensitive=False)
|
||||
if ErrorCode != 0:
|
||||
EdkLogger.error('build', ErrorCode, ExtraData=ErrorInfo,
|
||||
File=self.MetaFile, Line=LineNo)
|
||||
if not self._DependencyFileList:
|
||||
self._DependencyFileList = []
|
||||
self._DependencyFileList.append(File)
|
||||
|
||||
## Retrieve file version
|
||||
@cached_property
|
||||
@ -524,7 +464,6 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
RetVal = []
|
||||
RecordList = self._RawData[MODEL_EFI_BINARY_FILE, self._Arch, self._Platform]
|
||||
Macros = self._Macros
|
||||
Macros["EDK_SOURCE"] = GlobalData.gEcpSource
|
||||
Macros['PROCESSOR'] = self._Arch
|
||||
for Record in RecordList:
|
||||
FileType = Record[0]
|
||||
@ -572,31 +511,13 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
ToolChainFamily = Record[1]
|
||||
TagName = Record[2]
|
||||
ToolCode = Record[3]
|
||||
if self.AutoGenVersion < 0x00010005:
|
||||
Macros["EDK_SOURCE"] = GlobalData.gEcpSource
|
||||
Macros['PROCESSOR'] = self._Arch
|
||||
SourceFile = NormPath(Record[0], Macros)
|
||||
if SourceFile[0] == os.path.sep:
|
||||
SourceFile = mws.join(GlobalData.gWorkspace, SourceFile[1:])
|
||||
# old module source files (Edk)
|
||||
File = PathClass(SourceFile, self._ModuleDir, self._SourceOverridePath,
|
||||
'', False, self._Arch, ToolChainFamily, '', TagName, ToolCode)
|
||||
# check the file validation
|
||||
ErrorCode, ErrorInfo = File.Validate(CaseSensitive=False)
|
||||
if ErrorCode != 0:
|
||||
if File.Ext.lower() == '.h':
|
||||
EdkLogger.warn('build', 'Include file not found', ExtraData=ErrorInfo,
|
||||
File=self.MetaFile, Line=LineNo)
|
||||
continue
|
||||
else:
|
||||
EdkLogger.error('build', ErrorCode, ExtraData=File, File=self.MetaFile, Line=LineNo)
|
||||
else:
|
||||
File = PathClass(NormPath(Record[0], Macros), self._ModuleDir, '',
|
||||
'', False, self._Arch, ToolChainFamily, '', TagName, ToolCode)
|
||||
# check the file validation
|
||||
ErrorCode, ErrorInfo = File.Validate()
|
||||
if ErrorCode != 0:
|
||||
EdkLogger.error('build', ErrorCode, ExtraData=ErrorInfo, File=self.MetaFile, Line=LineNo)
|
||||
|
||||
File = PathClass(NormPath(Record[0], Macros), self._ModuleDir, '',
|
||||
'', False, self._Arch, ToolChainFamily, '', TagName, ToolCode)
|
||||
# check the file validation
|
||||
ErrorCode, ErrorInfo = File.Validate()
|
||||
if ErrorCode != 0:
|
||||
EdkLogger.error('build', ErrorCode, ExtraData=ErrorInfo, File=self.MetaFile, Line=LineNo)
|
||||
|
||||
RetVal.append(File)
|
||||
# add any previously found dependency files to the source list
|
||||
@ -716,7 +637,6 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
RecordList = self._RawData[MODEL_EFI_INCLUDE, self._Arch, self._Platform]
|
||||
for Record in RecordList:
|
||||
if Record[0].find('EDK_SOURCE') > -1:
|
||||
Macros['EDK_SOURCE'] = GlobalData.gEcpSource
|
||||
File = NormPath(Record[0], self._Macros)
|
||||
if File[0] == '.':
|
||||
File = os.path.join(self._ModuleDir, File)
|
||||
@ -727,7 +647,6 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
RetVal.append(File)
|
||||
|
||||
# TRICK: let compiler to choose correct header file
|
||||
Macros['EDK_SOURCE'] = GlobalData.gEdkSource
|
||||
File = NormPath(Record[0], self._Macros)
|
||||
if File[0] == '.':
|
||||
File = os.path.join(self._ModuleDir, File)
|
||||
@ -745,17 +664,6 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
File = RealPath(os.path.normpath(File))
|
||||
if File:
|
||||
RetVal.append(File)
|
||||
if not File and Record[0].find('EFI_SOURCE') > -1:
|
||||
# tricky to regard WorkSpace as EFI_SOURCE
|
||||
Macros['EFI_SOURCE'] = GlobalData.gWorkspace
|
||||
File = NormPath(Record[0], Macros)
|
||||
if File[0] == '.':
|
||||
File = os.path.join(self._ModuleDir, File)
|
||||
else:
|
||||
File = os.path.join(GlobalData.gWorkspace, File)
|
||||
File = RealPath(os.path.normpath(File))
|
||||
if File:
|
||||
RetVal.append(File)
|
||||
return RetVal
|
||||
|
||||
## Retrieve packages this module depends on
|
||||
@ -764,7 +672,6 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
RetVal = []
|
||||
RecordList = self._RawData[MODEL_META_DATA_PACKAGE, self._Arch, self._Platform]
|
||||
Macros = self._Macros
|
||||
Macros['EDK_SOURCE'] = GlobalData.gEcpSource
|
||||
for Record in RecordList:
|
||||
File = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch)
|
||||
# check the file validation
|
||||
|
Reference in New Issue
Block a user