From 822925013278733ac7f03c35fece2df3e8bc3614 Mon Sep 17 00:00:00 2001 From: "Feng, Bob C" Date: Mon, 14 Jan 2019 09:24:12 +0800 Subject: 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 Cc: Liming Gao Cc: Jaben Carsey Reviewed-by: Jaben Carsey Reviewed-by: Liming Gao --- BaseTools/Source/Python/Workspace/InfBuildData.py | 191 ++++++---------------- 1 file changed, 49 insertions(+), 142 deletions(-) (limited to 'BaseTools/Source/Python/Workspace/InfBuildData.py') diff --git a/BaseTools/Source/Python/Workspace/InfBuildData.py b/BaseTools/Source/Python/Workspace/InfBuildData.py index 99bbecfd1f..02d6c1c756 100644 --- a/BaseTools/Source/Python/Workspace/InfBuildData.py +++ b/BaseTools/Source/Python/Workspace/InfBuildData.py @@ -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) - - 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) + 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: - 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 -- cgit v1.2.3