* [PATCH v1 1/1] BaseTools: AutoGen - clean up access [not found] <cover.1530134848.git.jaben.carsey@intel.com> @ 2018-06-27 21:27 ` Jaben Carsey 2018-06-29 7:37 ` Zhu, Yonghong 0 siblings, 1 reply; 2+ messages in thread From: Jaben Carsey @ 2018-06-27 21:27 UTC (permalink / raw) To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu 1) add a property so others can access needed data 2) change GenMake to use property 3) add local variable in GenMake to speed up access Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> --- BaseTools/Source/Python/AutoGen/AutoGen.py | 3 +- BaseTools/Source/Python/AutoGen/GenMake.py | 230 ++++++++++---------- 2 files changed, 118 insertions(+), 115 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 381dbc0a71fa..c8009d04d7af 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -2780,7 +2780,7 @@ class ModuleAutoGen(AutoGen): self._Macro = OrderedDict() self._Macro["WORKSPACE" ] = self.WorkspaceDir self._Macro["MODULE_NAME" ] = self.Name - self._Macro["MODULE_NAME_GUID" ] = self._GetUniqueBaseName() + self._Macro["MODULE_NAME_GUID" ] = self.UniqueBaseName self._Macro["MODULE_GUID" ] = self.Guid self._Macro["MODULE_VERSION" ] = self.Version self._Macro["MODULE_TYPE" ] = self.ModuleType @@ -4408,6 +4408,7 @@ class ModuleAutoGen(AutoGen): BuildCommand = property(_GetBuildCommand) FixedAtBuildPcds = property(_GetFixedAtBuildPcds) + UniqueBaseName = property(_GetUniqueBaseName) # This acts like the main() function for the script, unless it is 'import'ed into another script. if __name__ == '__main__': diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index f3b23ed055fb..992de5490dff 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -458,59 +458,60 @@ cleanlib: if self._FileType not in self._SEP_: EdkLogger.error("build", PARAMETER_INVALID, "Invalid Makefile type [%s]" % self._FileType, ExtraData="[%s]" % str(self._AutoGenObject)) + MyAgo = self._AutoGenObject Separator = self._SEP_[self._FileType] # break build if no source files and binary files are found - if len(self._AutoGenObject.SourceFileList) == 0 and len(self._AutoGenObject.BinaryFileList) == 0: + if len(MyAgo.SourceFileList) == 0 and len(MyAgo.BinaryFileList) == 0: EdkLogger.error("build", AUTOGEN_ERROR, "No files to be built in module [%s, %s, %s]" - % (self._AutoGenObject.BuildTarget, self._AutoGenObject.ToolChain, self._AutoGenObject.Arch), - ExtraData="[%s]" % str(self._AutoGenObject)) + % (MyAgo.BuildTarget, MyAgo.ToolChain, MyAgo.Arch), + ExtraData="[%s]" % str(MyAgo)) # convert dependent libraries to build command self.ProcessDependentLibrary() - if len(self._AutoGenObject.Module.ModuleEntryPointList) > 0: - ModuleEntryPoint = self._AutoGenObject.Module.ModuleEntryPointList[0] + if len(MyAgo.Module.ModuleEntryPointList) > 0: + ModuleEntryPoint = MyAgo.Module.ModuleEntryPointList[0] else: ModuleEntryPoint = "_ModuleEntryPoint" # Intel EBC compiler enforces EfiMain - if self._AutoGenObject.AutoGenVersion < 0x00010005 and self._AutoGenObject.Arch == "EBC": + if MyAgo.AutoGenVersion < 0x00010005 and MyAgo.Arch == "EBC": ArchEntryPoint = "EfiMain" else: ArchEntryPoint = ModuleEntryPoint - if self._AutoGenObject.Arch == "EBC": + if MyAgo.Arch == "EBC": # EBC compiler always use "EfiStart" as entry point. Only applies to EdkII modules ImageEntryPoint = "EfiStart" - elif self._AutoGenObject.AutoGenVersion < 0x00010005: + elif MyAgo.AutoGenVersion < 0x00010005: # Edk modules use entry point specified in INF file ImageEntryPoint = ModuleEntryPoint else: # EdkII modules always use "_ModuleEntryPoint" as entry point ImageEntryPoint = "_ModuleEntryPoint" - for k, v in self._AutoGenObject.Module.Defines.iteritems(): - if k not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros[k] = v + for k, v in MyAgo.Module.Defines.iteritems(): + if k not in MyAgo.Macros: + MyAgo.Macros[k] = v - if 'MODULE_ENTRY_POINT' not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros['MODULE_ENTRY_POINT'] = ModuleEntryPoint - if 'ARCH_ENTRY_POINT' not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros['ARCH_ENTRY_POINT'] = ArchEntryPoint - if 'IMAGE_ENTRY_POINT' not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros['IMAGE_ENTRY_POINT'] = ImageEntryPoint + if 'MODULE_ENTRY_POINT' not in MyAgo.Macros: + MyAgo.Macros['MODULE_ENTRY_POINT'] = ModuleEntryPoint + if 'ARCH_ENTRY_POINT' not in MyAgo.Macros: + MyAgo.Macros['ARCH_ENTRY_POINT'] = ArchEntryPoint + if 'IMAGE_ENTRY_POINT' not in MyAgo.Macros: + MyAgo.Macros['IMAGE_ENTRY_POINT'] = ImageEntryPoint PCI_COMPRESS_Flag = False - for k, v in self._AutoGenObject.Module.Defines.iteritems(): + for k, v in MyAgo.Module.Defines.iteritems(): if 'PCI_COMPRESS' == k and 'TRUE' == v: PCI_COMPRESS_Flag = True # tools definitions ToolsDef = [] - IncPrefix = self._INC_FLAG_[self._AutoGenObject.ToolChainFamily] - for Tool in self._AutoGenObject.BuildOption: - for Attr in self._AutoGenObject.BuildOption[Tool]: - Value = self._AutoGenObject.BuildOption[Tool][Attr] + IncPrefix = self._INC_FLAG_[MyAgo.ToolChainFamily] + for Tool in MyAgo.BuildOption: + for Attr in MyAgo.BuildOption[Tool]: + Value = MyAgo.BuildOption[Tool][Attr] if Attr == "FAMILY": continue elif Attr == "PATH": @@ -521,7 +522,7 @@ cleanlib: continue # Remove duplicated include path, if any if Attr == "FLAGS": - Value = RemoveDupOption(Value, IncPrefix, self._AutoGenObject.IncludePathList) + Value = RemoveDupOption(Value, IncPrefix, MyAgo.IncludePathList) if Tool == "OPTROM" and PCI_COMPRESS_Flag: ValueList = Value.split() if ValueList: @@ -535,11 +536,11 @@ cleanlib: # generate the Response file and Response flag RespDict = self.CommandExceedLimit() - RespFileList = os.path.join(self._AutoGenObject.OutputDir, 'respfilelist.txt') + RespFileList = os.path.join(MyAgo.OutputDir, 'respfilelist.txt') if RespDict: RespFileListContent = '' for Resp in RespDict: - RespFile = os.path.join(self._AutoGenObject.OutputDir, str(Resp).lower() + '.txt') + RespFile = os.path.join(MyAgo.OutputDir, str(Resp).lower() + '.txt') StrList = RespDict[Resp].split(' ') UnexpandMacro = [] NewStr = [] @@ -560,10 +561,10 @@ cleanlib: os.remove(RespFileList) # convert source files and binary files to build targets - self.ResultFileList = [str(T.Target) for T in self._AutoGenObject.CodaTargetList] - if len(self.ResultFileList) == 0 and len(self._AutoGenObject.SourceFileList) != 0: + self.ResultFileList = [str(T.Target) for T in MyAgo.CodaTargetList] + if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0: EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build", - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) self.ProcessBuildTargetList() self.ParserGenerateFfsCmd() @@ -582,7 +583,7 @@ cleanlib: # INC_LIST is special FileMacro = "" IncludePathList = [] - for P in self._AutoGenObject.IncludePathList: + for P in MyAgo.IncludePathList: IncludePathList.append(IncPrefix + self.PlaceMacro(P, self.Macros)) if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros: self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(IncPrefix + P) @@ -596,7 +597,7 @@ cleanlib: # Generate macros used to represent files containing list of input files for ListFileMacro in self.ListFileMacros: - ListFileName = os.path.join(self._AutoGenObject.OutputDir, "%s.lst" % ListFileMacro.lower()[:len(ListFileMacro) - 5]) + ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" % ListFileMacro.lower()[:len(ListFileMacro) - 5]) FileMacroList.append("%s = %s" % (ListFileMacro, ListFileName)) SaveFileOnChange( ListFileName, @@ -605,7 +606,7 @@ cleanlib: ) # Edk modules need <BaseName>StrDefs.h for string ID - #if self._AutoGenObject.AutoGenVersion < 0x00010005 and len(self._AutoGenObject.UnicodeFileList) > 0: + #if MyAgo.AutoGenVersion < 0x00010005 and len(MyAgo.UnicodeFileList) > 0: # BcTargetList = ['strdefs'] #else: # BcTargetList = [] @@ -617,7 +618,7 @@ cleanlib: Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join(D, MakefileName)} LibraryMakeCommandList.append(Command) - package_rel_dir = self._AutoGenObject.SourceDir + package_rel_dir = MyAgo.SourceDir current_dir = self.Macros["WORKSPACE"] found = False while not found and os.sep in package_rel_dir: @@ -639,29 +640,29 @@ cleanlib: "platform_version" : self.PlatformInfo.Version, "platform_relative_directory": self.PlatformInfo.SourceDir, "platform_output_directory" : self.PlatformInfo.OutputDir, - "ffs_output_directory" : self._AutoGenObject.Macros["FFS_OUTPUT_DIR"], - "platform_dir" : self._AutoGenObject.Macros["PLATFORM_DIR"], + "ffs_output_directory" : MyAgo.Macros["FFS_OUTPUT_DIR"], + "platform_dir" : MyAgo.Macros["PLATFORM_DIR"], - "module_name" : self._AutoGenObject.Name, - "module_guid" : self._AutoGenObject.Guid, - "module_name_guid" : self._AutoGenObject._GetUniqueBaseName(), - "module_version" : self._AutoGenObject.Version, - "module_type" : self._AutoGenObject.ModuleType, - "module_file" : self._AutoGenObject.MetaFile.Name, - "module_file_base_name" : self._AutoGenObject.MetaFile.BaseName, - "module_relative_directory" : self._AutoGenObject.SourceDir, - "module_dir" : mws.join (self.Macros["WORKSPACE"], self._AutoGenObject.SourceDir), + "module_name" : MyAgo.Name, + "module_guid" : MyAgo.Guid, + "module_name_guid" : MyAgo.UniqueBaseName, + "module_version" : MyAgo.Version, + "module_type" : MyAgo.ModuleType, + "module_file" : MyAgo.MetaFile.Name, + "module_file_base_name" : MyAgo.MetaFile.BaseName, + "module_relative_directory" : MyAgo.SourceDir, + "module_dir" : mws.join (self.Macros["WORKSPACE"], MyAgo.SourceDir), "package_relative_directory": package_rel_dir, - "module_extra_defines" : ["%s = %s" % (k, v) for k, v in self._AutoGenObject.Module.Defines.iteritems()], + "module_extra_defines" : ["%s = %s" % (k, v) for k, v in MyAgo.Module.Defines.iteritems()], - "architecture" : self._AutoGenObject.Arch, - "toolchain_tag" : self._AutoGenObject.ToolChain, - "build_target" : self._AutoGenObject.BuildTarget, + "architecture" : MyAgo.Arch, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "platform_build_directory" : self.PlatformInfo.BuildDir, - "module_build_directory" : self._AutoGenObject.BuildDir, - "module_output_directory" : self._AutoGenObject.OutputDir, - "module_debug_directory" : self._AutoGenObject.DebugDir, + "module_build_directory" : MyAgo.BuildDir, + "module_output_directory" : MyAgo.OutputDir, + "module_debug_directory" : MyAgo.DebugDir, "separator" : Separator, "module_tool_definitions" : ToolsDef, @@ -1205,32 +1206,33 @@ ${BEGIN}\t-@${create_directory_command}\n${END}\ # Compose a dict object containing information used to do replacement in template def _CreateTemplateDict(self): Separator = self._SEP_[self._FileType] - if self._FileType not in self._AutoGenObject.CustomMakefile: + MyAgo = self._AutoGenObject + if self._FileType not in MyAgo.CustomMakefile: EdkLogger.error('build', OPTION_NOT_SUPPORTED, "No custom makefile for %s" % self._FileType, - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) MakefilePath = mws.join( - self._AutoGenObject.WorkspaceDir, - self._AutoGenObject.CustomMakefile[self._FileType] + MyAgo.WorkspaceDir, + MyAgo.CustomMakefile[self._FileType] ) try: CustomMakefile = open(MakefilePath, 'r').read() except: - EdkLogger.error('build', FILE_OPEN_FAILURE, File=str(self._AutoGenObject), - ExtraData=self._AutoGenObject.CustomMakefile[self._FileType]) + EdkLogger.error('build', FILE_OPEN_FAILURE, File=str(MyAgo), + ExtraData=MyAgo.CustomMakefile[self._FileType]) # tools definitions ToolsDef = [] - for Tool in self._AutoGenObject.BuildOption: + for Tool in MyAgo.BuildOption: # Don't generate MAKE_FLAGS in makefile. It's put in environment variable. if Tool == "MAKE": continue - for Attr in self._AutoGenObject.BuildOption[Tool]: + for Attr in MyAgo.BuildOption[Tool]: if Attr == "FAMILY": continue elif Attr == "PATH": - ToolsDef.append("%s = %s" % (Tool, self._AutoGenObject.BuildOption[Tool][Attr])) + ToolsDef.append("%s = %s" % (Tool, MyAgo.BuildOption[Tool][Attr])) else: - ToolsDef.append("%s_%s = %s" % (Tool, Attr, self._AutoGenObject.BuildOption[Tool][Attr])) + ToolsDef.append("%s_%s = %s" % (Tool, Attr, MyAgo.BuildOption[Tool][Attr])) ToolsDef.append("") MakefileName = self._FILE_NAME_[self._FileType] @@ -1242,26 +1244,26 @@ ${BEGIN}\t-@${create_directory_command}\n${END}\ "platform_version" : self.PlatformInfo.Version, "platform_relative_directory": self.PlatformInfo.SourceDir, "platform_output_directory" : self.PlatformInfo.OutputDir, - "platform_dir" : self._AutoGenObject.Macros["PLATFORM_DIR"], + "platform_dir" : MyAgo.Macros["PLATFORM_DIR"], - "module_name" : self._AutoGenObject.Name, - "module_guid" : self._AutoGenObject.Guid, - "module_name_guid" : self._AutoGenObject._GetUniqueBaseName(), - "module_version" : self._AutoGenObject.Version, - "module_type" : self._AutoGenObject.ModuleType, - "module_file" : self._AutoGenObject.MetaFile, - "module_file_base_name" : self._AutoGenObject.MetaFile.BaseName, - "module_relative_directory" : self._AutoGenObject.SourceDir, - "module_dir" : mws.join (self._AutoGenObject.WorkspaceDir, self._AutoGenObject.SourceDir), + "module_name" : MyAgo.Name, + "module_guid" : MyAgo.Guid, + "module_name_guid" : MyAgo.UniqueBaseName, + "module_version" : MyAgo.Version, + "module_type" : MyAgo.ModuleType, + "module_file" : MyAgo.MetaFile, + "module_file_base_name" : MyAgo.MetaFile.BaseName, + "module_relative_directory" : MyAgo.SourceDir, + "module_dir" : mws.join (MyAgo.WorkspaceDir, MyAgo.SourceDir), - "architecture" : self._AutoGenObject.Arch, - "toolchain_tag" : self._AutoGenObject.ToolChain, - "build_target" : self._AutoGenObject.BuildTarget, + "architecture" : MyAgo.Arch, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "platform_build_directory" : self.PlatformInfo.BuildDir, - "module_build_directory" : self._AutoGenObject.BuildDir, - "module_output_directory" : self._AutoGenObject.OutputDir, - "module_debug_directory" : self._AutoGenObject.DebugDir, + "module_build_directory" : MyAgo.BuildDir, + "module_output_directory" : MyAgo.OutputDir, + "module_debug_directory" : MyAgo.DebugDir, "separator" : Separator, "module_tool_definitions" : ToolsDef, @@ -1396,10 +1398,10 @@ cleanlib: def _CreateTemplateDict(self): Separator = self._SEP_[self._FileType] - PlatformInfo = self._AutoGenObject - if "MAKE" not in PlatformInfo.ToolDefinition or "PATH" not in PlatformInfo.ToolDefinition["MAKE"]: + MyAgo = self._AutoGenObject + if "MAKE" not in MyAgo.ToolDefinition or "PATH" not in MyAgo.ToolDefinition["MAKE"]: EdkLogger.error("build", OPTION_MISSING, "No MAKE command defined. Please check your tools_def.txt!", - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) self.IntermediateDirectoryList = ["$(BUILD_DIR)"] self.ModuleBuildDirectoryList = self.GetModuleBuildDirectoryList() @@ -1409,7 +1411,7 @@ cleanlib: LibraryMakefileList = [] LibraryMakeCommandList = [] for D in self.LibraryBuildDirectoryList: - D = self.PlaceMacro(D, {"BUILD_DIR":PlatformInfo.BuildDir}) + D = self.PlaceMacro(D, {"BUILD_DIR":MyAgo.BuildDir}) Makefile = os.path.join(D, MakefileName) Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":Makefile} LibraryMakefileList.append(Makefile) @@ -1419,7 +1421,7 @@ cleanlib: ModuleMakefileList = [] ModuleMakeCommandList = [] for D in self.ModuleBuildDirectoryList: - D = self.PlaceMacro(D, {"BUILD_DIR":PlatformInfo.BuildDir}) + D = self.PlaceMacro(D, {"BUILD_DIR":MyAgo.BuildDir}) Makefile = os.path.join(D, MakefileName) Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":Makefile} ModuleMakefileList.append(Makefile) @@ -1428,23 +1430,23 @@ cleanlib: MakefileTemplateDict = { "makefile_header" : self._FILE_HEADER_[self._FileType], "makefile_path" : os.path.join("$(BUILD_DIR)", MakefileName), - "make_path" : PlatformInfo.ToolDefinition["MAKE"]["PATH"], + "make_path" : MyAgo.ToolDefinition["MAKE"]["PATH"], "makefile_name" : MakefileName, - "platform_name" : PlatformInfo.Name, - "platform_guid" : PlatformInfo.Guid, - "platform_version" : PlatformInfo.Version, - "platform_file" : self._AutoGenObject.MetaFile, - "platform_relative_directory": PlatformInfo.SourceDir, - "platform_output_directory" : PlatformInfo.OutputDir, - "platform_build_directory" : PlatformInfo.BuildDir, - "platform_dir" : self._AutoGenObject.Macros["PLATFORM_DIR"], + "platform_name" : MyAgo.Name, + "platform_guid" : MyAgo.Guid, + "platform_version" : MyAgo.Version, + "platform_file" : MyAgo.MetaFile, + "platform_relative_directory": MyAgo.SourceDir, + "platform_output_directory" : MyAgo.OutputDir, + "platform_build_directory" : MyAgo.BuildDir, + "platform_dir" : MyAgo.Macros["PLATFORM_DIR"], - "toolchain_tag" : PlatformInfo.ToolChain, - "build_target" : PlatformInfo.BuildTarget, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(), "shell_command" : self._SHELL_CMD_[self._FileType].values(), - "build_architecture_list" : self._AutoGenObject.Arch, - "architecture" : self._AutoGenObject.Arch, + "build_architecture_list" : MyAgo.Arch, + "architecture" : MyAgo.Arch, "separator" : Separator, "create_directory_command" : self.GetCreateDirectoryCommand(self.IntermediateDirectoryList), "cleanall_command" : self.GetRemoveDirectoryCommand(self.IntermediateDirectoryList), @@ -1503,20 +1505,20 @@ class TopLevelMakefile(BuildFile): Separator = self._SEP_[self._FileType] # any platform autogen object is ok because we just need common information - PlatformInfo = self._AutoGenObject + MyAgo = self._AutoGenObject - if "MAKE" not in PlatformInfo.ToolDefinition or "PATH" not in PlatformInfo.ToolDefinition["MAKE"]: + if "MAKE" not in MyAgo.ToolDefinition or "PATH" not in MyAgo.ToolDefinition["MAKE"]: EdkLogger.error("build", OPTION_MISSING, "No MAKE command defined. Please check your tools_def.txt!", - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) - for Arch in PlatformInfo.ArchList: + for Arch in MyAgo.ArchList: self.IntermediateDirectoryList.append(Separator.join(["$(BUILD_DIR)", Arch])) self.IntermediateDirectoryList.append("$(FV_DIR)") # TRICK: for not generating GenFds call in makefile if no FDF file MacroList = [] - if PlatformInfo.FdfFile is not None and PlatformInfo.FdfFile != "": - FdfFileList = [PlatformInfo.FdfFile] + if MyAgo.FdfFile is not None and MyAgo.FdfFile != "": + FdfFileList = [MyAgo.FdfFile] # macros passed to GenFds MacroList.append('"%s=%s"' % ("EFI_SOURCE", GlobalData.gEfiSource.replace('\\', '\\\\'))) MacroList.append('"%s=%s"' % ("EDK_SOURCE", GlobalData.gEdkSource.replace('\\', '\\\\'))) @@ -1562,35 +1564,35 @@ class TopLevelMakefile(BuildFile): MakefileName = self._FILE_NAME_[self._FileType] SubBuildCommandList = [] - for A in PlatformInfo.ArchList: + for A in MyAgo.ArchList: Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join("$(BUILD_DIR)", A, MakefileName)} SubBuildCommandList.append(Command) MakefileTemplateDict = { "makefile_header" : self._FILE_HEADER_[self._FileType], "makefile_path" : os.path.join("$(BUILD_DIR)", MakefileName), - "make_path" : PlatformInfo.ToolDefinition["MAKE"]["PATH"], - "platform_name" : PlatformInfo.Name, - "platform_guid" : PlatformInfo.Guid, - "platform_version" : PlatformInfo.Version, - "platform_build_directory" : PlatformInfo.BuildDir, + "make_path" : MyAgo.ToolDefinition["MAKE"]["PATH"], + "platform_name" : MyAgo.Name, + "platform_guid" : MyAgo.Guid, + "platform_version" : MyAgo.Version, + "platform_build_directory" : MyAgo.BuildDir, "conf_directory" : GlobalData.gConfDirectory, - "toolchain_tag" : PlatformInfo.ToolChain, - "build_target" : PlatformInfo.BuildTarget, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(), "shell_command" : self._SHELL_CMD_[self._FileType].values(), - 'arch' : list(PlatformInfo.ArchList), - "build_architecture_list" : ','.join(PlatformInfo.ArchList), + 'arch' : list(MyAgo.ArchList), + "build_architecture_list" : ','.join(MyAgo.ArchList), "separator" : Separator, "create_directory_command" : self.GetCreateDirectoryCommand(self.IntermediateDirectoryList), "cleanall_command" : self.GetRemoveDirectoryCommand(self.IntermediateDirectoryList), "sub_build_command" : SubBuildCommandList, "fdf_file" : FdfFileList, - "active_platform" : str(PlatformInfo), - "fd" : PlatformInfo.FdTargetList, - "fv" : PlatformInfo.FvTargetList, - "cap" : PlatformInfo.CapTargetList, + "active_platform" : str(MyAgo), + "fd" : MyAgo.FdTargetList, + "fv" : MyAgo.FvTargetList, + "cap" : MyAgo.CapTargetList, "extra_options" : ExtraOption, "macro" : MacroList, } -- 2.16.2.windows.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v1 1/1] BaseTools: AutoGen - clean up access 2018-06-27 21:27 ` [PATCH v1 1/1] BaseTools: AutoGen - clean up access Jaben Carsey @ 2018-06-29 7:37 ` Zhu, Yonghong 0 siblings, 0 replies; 2+ messages in thread From: Zhu, Yonghong @ 2018-06-29 7:37 UTC (permalink / raw) To: Carsey, Jaben, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> Best Regards, Zhu Yonghong -----Original Message----- From: Carsey, Jaben Sent: Thursday, June 28, 2018 5:28 AM To: edk2-devel@lists.01.org Cc: Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com> Subject: [PATCH v1 1/1] BaseTools: AutoGen - clean up access 1) add a property so others can access needed data 2) change GenMake to use property 3) add local variable in GenMake to speed up access Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> --- BaseTools/Source/Python/AutoGen/AutoGen.py | 3 +- BaseTools/Source/Python/AutoGen/GenMake.py | 230 ++++++++++---------- 2 files changed, 118 insertions(+), 115 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 381dbc0a71fa..c8009d04d7af 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -2780,7 +2780,7 @@ class ModuleAutoGen(AutoGen): self._Macro = OrderedDict() self._Macro["WORKSPACE" ] = self.WorkspaceDir self._Macro["MODULE_NAME" ] = self.Name - self._Macro["MODULE_NAME_GUID" ] = self._GetUniqueBaseName() + self._Macro["MODULE_NAME_GUID" ] = self.UniqueBaseName self._Macro["MODULE_GUID" ] = self.Guid self._Macro["MODULE_VERSION" ] = self.Version self._Macro["MODULE_TYPE" ] = self.ModuleType @@ -4408,6 +4408,7 @@ class ModuleAutoGen(AutoGen): BuildCommand = property(_GetBuildCommand) FixedAtBuildPcds = property(_GetFixedAtBuildPcds) + UniqueBaseName = property(_GetUniqueBaseName) # This acts like the main() function for the script, unless it is 'import'ed into another script. if __name__ == '__main__': diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index f3b23ed055fb..992de5490dff 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -458,59 +458,60 @@ cleanlib: if self._FileType not in self._SEP_: EdkLogger.error("build", PARAMETER_INVALID, "Invalid Makefile type [%s]" % self._FileType, ExtraData="[%s]" % str(self._AutoGenObject)) + MyAgo = self._AutoGenObject Separator = self._SEP_[self._FileType] # break build if no source files and binary files are found - if len(self._AutoGenObject.SourceFileList) == 0 and len(self._AutoGenObject.BinaryFileList) == 0: + if len(MyAgo.SourceFileList) == 0 and len(MyAgo.BinaryFileList) == 0: EdkLogger.error("build", AUTOGEN_ERROR, "No files to be built in module [%s, %s, %s]" - % (self._AutoGenObject.BuildTarget, self._AutoGenObject.ToolChain, self._AutoGenObject.Arch), - ExtraData="[%s]" % str(self._AutoGenObject)) + % (MyAgo.BuildTarget, MyAgo.ToolChain, MyAgo.Arch), + ExtraData="[%s]" % str(MyAgo)) # convert dependent libraries to build command self.ProcessDependentLibrary() - if len(self._AutoGenObject.Module.ModuleEntryPointList) > 0: - ModuleEntryPoint = self._AutoGenObject.Module.ModuleEntryPointList[0] + if len(MyAgo.Module.ModuleEntryPointList) > 0: + ModuleEntryPoint = MyAgo.Module.ModuleEntryPointList[0] else: ModuleEntryPoint = "_ModuleEntryPoint" # Intel EBC compiler enforces EfiMain - if self._AutoGenObject.AutoGenVersion < 0x00010005 and self._AutoGenObject.Arch == "EBC": + if MyAgo.AutoGenVersion < 0x00010005 and MyAgo.Arch == "EBC": ArchEntryPoint = "EfiMain" else: ArchEntryPoint = ModuleEntryPoint - if self._AutoGenObject.Arch == "EBC": + if MyAgo.Arch == "EBC": # EBC compiler always use "EfiStart" as entry point. Only applies to EdkII modules ImageEntryPoint = "EfiStart" - elif self._AutoGenObject.AutoGenVersion < 0x00010005: + elif MyAgo.AutoGenVersion < 0x00010005: # Edk modules use entry point specified in INF file ImageEntryPoint = ModuleEntryPoint else: # EdkII modules always use "_ModuleEntryPoint" as entry point ImageEntryPoint = "_ModuleEntryPoint" - for k, v in self._AutoGenObject.Module.Defines.iteritems(): - if k not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros[k] = v + for k, v in MyAgo.Module.Defines.iteritems(): + if k not in MyAgo.Macros: + MyAgo.Macros[k] = v - if 'MODULE_ENTRY_POINT' not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros['MODULE_ENTRY_POINT'] = ModuleEntryPoint - if 'ARCH_ENTRY_POINT' not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros['ARCH_ENTRY_POINT'] = ArchEntryPoint - if 'IMAGE_ENTRY_POINT' not in self._AutoGenObject.Macros: - self._AutoGenObject.Macros['IMAGE_ENTRY_POINT'] = ImageEntryPoint + if 'MODULE_ENTRY_POINT' not in MyAgo.Macros: + MyAgo.Macros['MODULE_ENTRY_POINT'] = ModuleEntryPoint + if 'ARCH_ENTRY_POINT' not in MyAgo.Macros: + MyAgo.Macros['ARCH_ENTRY_POINT'] = ArchEntryPoint + if 'IMAGE_ENTRY_POINT' not in MyAgo.Macros: + MyAgo.Macros['IMAGE_ENTRY_POINT'] = ImageEntryPoint PCI_COMPRESS_Flag = False - for k, v in self._AutoGenObject.Module.Defines.iteritems(): + for k, v in MyAgo.Module.Defines.iteritems(): if 'PCI_COMPRESS' == k and 'TRUE' == v: PCI_COMPRESS_Flag = True # tools definitions ToolsDef = [] - IncPrefix = self._INC_FLAG_[self._AutoGenObject.ToolChainFamily] - for Tool in self._AutoGenObject.BuildOption: - for Attr in self._AutoGenObject.BuildOption[Tool]: - Value = self._AutoGenObject.BuildOption[Tool][Attr] + IncPrefix = self._INC_FLAG_[MyAgo.ToolChainFamily] + for Tool in MyAgo.BuildOption: + for Attr in MyAgo.BuildOption[Tool]: + Value = MyAgo.BuildOption[Tool][Attr] if Attr == "FAMILY": continue elif Attr == "PATH": @@ -521,7 +522,7 @@ cleanlib: continue # Remove duplicated include path, if any if Attr == "FLAGS": - Value = RemoveDupOption(Value, IncPrefix, self._AutoGenObject.IncludePathList) + Value = RemoveDupOption(Value, IncPrefix, + MyAgo.IncludePathList) if Tool == "OPTROM" and PCI_COMPRESS_Flag: ValueList = Value.split() if ValueList: @@ -535,11 +536,11 @@ cleanlib: # generate the Response file and Response flag RespDict = self.CommandExceedLimit() - RespFileList = os.path.join(self._AutoGenObject.OutputDir, 'respfilelist.txt') + RespFileList = os.path.join(MyAgo.OutputDir, + 'respfilelist.txt') if RespDict: RespFileListContent = '' for Resp in RespDict: - RespFile = os.path.join(self._AutoGenObject.OutputDir, str(Resp).lower() + '.txt') + RespFile = os.path.join(MyAgo.OutputDir, + str(Resp).lower() + '.txt') StrList = RespDict[Resp].split(' ') UnexpandMacro = [] NewStr = [] @@ -560,10 +561,10 @@ cleanlib: os.remove(RespFileList) # convert source files and binary files to build targets - self.ResultFileList = [str(T.Target) for T in self._AutoGenObject.CodaTargetList] - if len(self.ResultFileList) == 0 and len(self._AutoGenObject.SourceFileList) != 0: + self.ResultFileList = [str(T.Target) for T in MyAgo.CodaTargetList] + if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0: EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build", - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) self.ProcessBuildTargetList() self.ParserGenerateFfsCmd() @@ -582,7 +583,7 @@ cleanlib: # INC_LIST is special FileMacro = "" IncludePathList = [] - for P in self._AutoGenObject.IncludePathList: + for P in MyAgo.IncludePathList: IncludePathList.append(IncPrefix + self.PlaceMacro(P, self.Macros)) if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros: self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(IncPrefix + P) @@ -596,7 +597,7 @@ cleanlib: # Generate macros used to represent files containing list of input files for ListFileMacro in self.ListFileMacros: - ListFileName = os.path.join(self._AutoGenObject.OutputDir, "%s.lst" % ListFileMacro.lower()[:len(ListFileMacro) - 5]) + ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" % + ListFileMacro.lower()[:len(ListFileMacro) - 5]) FileMacroList.append("%s = %s" % (ListFileMacro, ListFileName)) SaveFileOnChange( ListFileName, @@ -605,7 +606,7 @@ cleanlib: ) # Edk modules need <BaseName>StrDefs.h for string ID - #if self._AutoGenObject.AutoGenVersion < 0x00010005 and len(self._AutoGenObject.UnicodeFileList) > 0: + #if MyAgo.AutoGenVersion < 0x00010005 and len(MyAgo.UnicodeFileList) > 0: # BcTargetList = ['strdefs'] #else: # BcTargetList = [] @@ -617,7 +618,7 @@ cleanlib: Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join(D, MakefileName)} LibraryMakeCommandList.append(Command) - package_rel_dir = self._AutoGenObject.SourceDir + package_rel_dir = MyAgo.SourceDir current_dir = self.Macros["WORKSPACE"] found = False while not found and os.sep in package_rel_dir: @@ -639,29 +640,29 @@ cleanlib: "platform_version" : self.PlatformInfo.Version, "platform_relative_directory": self.PlatformInfo.SourceDir, "platform_output_directory" : self.PlatformInfo.OutputDir, - "ffs_output_directory" : self._AutoGenObject.Macros["FFS_OUTPUT_DIR"], - "platform_dir" : self._AutoGenObject.Macros["PLATFORM_DIR"], + "ffs_output_directory" : MyAgo.Macros["FFS_OUTPUT_DIR"], + "platform_dir" : MyAgo.Macros["PLATFORM_DIR"], - "module_name" : self._AutoGenObject.Name, - "module_guid" : self._AutoGenObject.Guid, - "module_name_guid" : self._AutoGenObject._GetUniqueBaseName(), - "module_version" : self._AutoGenObject.Version, - "module_type" : self._AutoGenObject.ModuleType, - "module_file" : self._AutoGenObject.MetaFile.Name, - "module_file_base_name" : self._AutoGenObject.MetaFile.BaseName, - "module_relative_directory" : self._AutoGenObject.SourceDir, - "module_dir" : mws.join (self.Macros["WORKSPACE"], self._AutoGenObject.SourceDir), + "module_name" : MyAgo.Name, + "module_guid" : MyAgo.Guid, + "module_name_guid" : MyAgo.UniqueBaseName, + "module_version" : MyAgo.Version, + "module_type" : MyAgo.ModuleType, + "module_file" : MyAgo.MetaFile.Name, + "module_file_base_name" : MyAgo.MetaFile.BaseName, + "module_relative_directory" : MyAgo.SourceDir, + "module_dir" : mws.join (self.Macros["WORKSPACE"], MyAgo.SourceDir), "package_relative_directory": package_rel_dir, - "module_extra_defines" : ["%s = %s" % (k, v) for k, v in self._AutoGenObject.Module.Defines.iteritems()], + "module_extra_defines" : ["%s = %s" % (k, v) for k, v in MyAgo.Module.Defines.iteritems()], - "architecture" : self._AutoGenObject.Arch, - "toolchain_tag" : self._AutoGenObject.ToolChain, - "build_target" : self._AutoGenObject.BuildTarget, + "architecture" : MyAgo.Arch, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "platform_build_directory" : self.PlatformInfo.BuildDir, - "module_build_directory" : self._AutoGenObject.BuildDir, - "module_output_directory" : self._AutoGenObject.OutputDir, - "module_debug_directory" : self._AutoGenObject.DebugDir, + "module_build_directory" : MyAgo.BuildDir, + "module_output_directory" : MyAgo.OutputDir, + "module_debug_directory" : MyAgo.DebugDir, "separator" : Separator, "module_tool_definitions" : ToolsDef, @@ -1205,32 +1206,33 @@ ${BEGIN}\t-@${create_directory_command}\n${END}\ # Compose a dict object containing information used to do replacement in template def _CreateTemplateDict(self): Separator = self._SEP_[self._FileType] - if self._FileType not in self._AutoGenObject.CustomMakefile: + MyAgo = self._AutoGenObject + if self._FileType not in MyAgo.CustomMakefile: EdkLogger.error('build', OPTION_NOT_SUPPORTED, "No custom makefile for %s" % self._FileType, - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) MakefilePath = mws.join( - self._AutoGenObject.WorkspaceDir, - self._AutoGenObject.CustomMakefile[self._FileType] + MyAgo.WorkspaceDir, + MyAgo.CustomMakefile[self._FileType] ) try: CustomMakefile = open(MakefilePath, 'r').read() except: - EdkLogger.error('build', FILE_OPEN_FAILURE, File=str(self._AutoGenObject), - ExtraData=self._AutoGenObject.CustomMakefile[self._FileType]) + EdkLogger.error('build', FILE_OPEN_FAILURE, File=str(MyAgo), + + ExtraData=MyAgo.CustomMakefile[self._FileType]) # tools definitions ToolsDef = [] - for Tool in self._AutoGenObject.BuildOption: + for Tool in MyAgo.BuildOption: # Don't generate MAKE_FLAGS in makefile. It's put in environment variable. if Tool == "MAKE": continue - for Attr in self._AutoGenObject.BuildOption[Tool]: + for Attr in MyAgo.BuildOption[Tool]: if Attr == "FAMILY": continue elif Attr == "PATH": - ToolsDef.append("%s = %s" % (Tool, self._AutoGenObject.BuildOption[Tool][Attr])) + ToolsDef.append("%s = %s" % (Tool, + MyAgo.BuildOption[Tool][Attr])) else: - ToolsDef.append("%s_%s = %s" % (Tool, Attr, self._AutoGenObject.BuildOption[Tool][Attr])) + ToolsDef.append("%s_%s = %s" % (Tool, Attr, + MyAgo.BuildOption[Tool][Attr])) ToolsDef.append("") MakefileName = self._FILE_NAME_[self._FileType] @@ -1242,26 +1244,26 @@ ${BEGIN}\t-@${create_directory_command}\n${END}\ "platform_version" : self.PlatformInfo.Version, "platform_relative_directory": self.PlatformInfo.SourceDir, "platform_output_directory" : self.PlatformInfo.OutputDir, - "platform_dir" : self._AutoGenObject.Macros["PLATFORM_DIR"], + "platform_dir" : MyAgo.Macros["PLATFORM_DIR"], - "module_name" : self._AutoGenObject.Name, - "module_guid" : self._AutoGenObject.Guid, - "module_name_guid" : self._AutoGenObject._GetUniqueBaseName(), - "module_version" : self._AutoGenObject.Version, - "module_type" : self._AutoGenObject.ModuleType, - "module_file" : self._AutoGenObject.MetaFile, - "module_file_base_name" : self._AutoGenObject.MetaFile.BaseName, - "module_relative_directory" : self._AutoGenObject.SourceDir, - "module_dir" : mws.join (self._AutoGenObject.WorkspaceDir, self._AutoGenObject.SourceDir), + "module_name" : MyAgo.Name, + "module_guid" : MyAgo.Guid, + "module_name_guid" : MyAgo.UniqueBaseName, + "module_version" : MyAgo.Version, + "module_type" : MyAgo.ModuleType, + "module_file" : MyAgo.MetaFile, + "module_file_base_name" : MyAgo.MetaFile.BaseName, + "module_relative_directory" : MyAgo.SourceDir, + "module_dir" : mws.join (MyAgo.WorkspaceDir, MyAgo.SourceDir), - "architecture" : self._AutoGenObject.Arch, - "toolchain_tag" : self._AutoGenObject.ToolChain, - "build_target" : self._AutoGenObject.BuildTarget, + "architecture" : MyAgo.Arch, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "platform_build_directory" : self.PlatformInfo.BuildDir, - "module_build_directory" : self._AutoGenObject.BuildDir, - "module_output_directory" : self._AutoGenObject.OutputDir, - "module_debug_directory" : self._AutoGenObject.DebugDir, + "module_build_directory" : MyAgo.BuildDir, + "module_output_directory" : MyAgo.OutputDir, + "module_debug_directory" : MyAgo.DebugDir, "separator" : Separator, "module_tool_definitions" : ToolsDef, @@ -1396,10 +1398,10 @@ cleanlib: def _CreateTemplateDict(self): Separator = self._SEP_[self._FileType] - PlatformInfo = self._AutoGenObject - if "MAKE" not in PlatformInfo.ToolDefinition or "PATH" not in PlatformInfo.ToolDefinition["MAKE"]: + MyAgo = self._AutoGenObject + if "MAKE" not in MyAgo.ToolDefinition or "PATH" not in MyAgo.ToolDefinition["MAKE"]: EdkLogger.error("build", OPTION_MISSING, "No MAKE command defined. Please check your tools_def.txt!", - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) self.IntermediateDirectoryList = ["$(BUILD_DIR)"] self.ModuleBuildDirectoryList = self.GetModuleBuildDirectoryList() @@ -1409,7 +1411,7 @@ cleanlib: LibraryMakefileList = [] LibraryMakeCommandList = [] for D in self.LibraryBuildDirectoryList: - D = self.PlaceMacro(D, {"BUILD_DIR":PlatformInfo.BuildDir}) + D = self.PlaceMacro(D, {"BUILD_DIR":MyAgo.BuildDir}) Makefile = os.path.join(D, MakefileName) Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":Makefile} LibraryMakefileList.append(Makefile) @@ -1419,7 +1421,7 @@ cleanlib: ModuleMakefileList = [] ModuleMakeCommandList = [] for D in self.ModuleBuildDirectoryList: - D = self.PlaceMacro(D, {"BUILD_DIR":PlatformInfo.BuildDir}) + D = self.PlaceMacro(D, {"BUILD_DIR":MyAgo.BuildDir}) Makefile = os.path.join(D, MakefileName) Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":Makefile} ModuleMakefileList.append(Makefile) @@ -1428,23 +1430,23 @@ cleanlib: MakefileTemplateDict = { "makefile_header" : self._FILE_HEADER_[self._FileType], "makefile_path" : os.path.join("$(BUILD_DIR)", MakefileName), - "make_path" : PlatformInfo.ToolDefinition["MAKE"]["PATH"], + "make_path" : MyAgo.ToolDefinition["MAKE"]["PATH"], "makefile_name" : MakefileName, - "platform_name" : PlatformInfo.Name, - "platform_guid" : PlatformInfo.Guid, - "platform_version" : PlatformInfo.Version, - "platform_file" : self._AutoGenObject.MetaFile, - "platform_relative_directory": PlatformInfo.SourceDir, - "platform_output_directory" : PlatformInfo.OutputDir, - "platform_build_directory" : PlatformInfo.BuildDir, - "platform_dir" : self._AutoGenObject.Macros["PLATFORM_DIR"], + "platform_name" : MyAgo.Name, + "platform_guid" : MyAgo.Guid, + "platform_version" : MyAgo.Version, + "platform_file" : MyAgo.MetaFile, + "platform_relative_directory": MyAgo.SourceDir, + "platform_output_directory" : MyAgo.OutputDir, + "platform_build_directory" : MyAgo.BuildDir, + "platform_dir" : MyAgo.Macros["PLATFORM_DIR"], - "toolchain_tag" : PlatformInfo.ToolChain, - "build_target" : PlatformInfo.BuildTarget, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(), "shell_command" : self._SHELL_CMD_[self._FileType].values(), - "build_architecture_list" : self._AutoGenObject.Arch, - "architecture" : self._AutoGenObject.Arch, + "build_architecture_list" : MyAgo.Arch, + "architecture" : MyAgo.Arch, "separator" : Separator, "create_directory_command" : self.GetCreateDirectoryCommand(self.IntermediateDirectoryList), "cleanall_command" : self.GetRemoveDirectoryCommand(self.IntermediateDirectoryList), @@ -1503,20 +1505,20 @@ class TopLevelMakefile(BuildFile): Separator = self._SEP_[self._FileType] # any platform autogen object is ok because we just need common information - PlatformInfo = self._AutoGenObject + MyAgo = self._AutoGenObject - if "MAKE" not in PlatformInfo.ToolDefinition or "PATH" not in PlatformInfo.ToolDefinition["MAKE"]: + if "MAKE" not in MyAgo.ToolDefinition or "PATH" not in MyAgo.ToolDefinition["MAKE"]: EdkLogger.error("build", OPTION_MISSING, "No MAKE command defined. Please check your tools_def.txt!", - ExtraData="[%s]" % str(self._AutoGenObject)) + ExtraData="[%s]" % str(MyAgo)) - for Arch in PlatformInfo.ArchList: + for Arch in MyAgo.ArchList: self.IntermediateDirectoryList.append(Separator.join(["$(BUILD_DIR)", Arch])) self.IntermediateDirectoryList.append("$(FV_DIR)") # TRICK: for not generating GenFds call in makefile if no FDF file MacroList = [] - if PlatformInfo.FdfFile is not None and PlatformInfo.FdfFile != "": - FdfFileList = [PlatformInfo.FdfFile] + if MyAgo.FdfFile is not None and MyAgo.FdfFile != "": + FdfFileList = [MyAgo.FdfFile] # macros passed to GenFds MacroList.append('"%s=%s"' % ("EFI_SOURCE", GlobalData.gEfiSource.replace('\\', '\\\\'))) MacroList.append('"%s=%s"' % ("EDK_SOURCE", GlobalData.gEdkSource.replace('\\', '\\\\'))) @@ -1562,35 +1564,35 @@ class TopLevelMakefile(BuildFile): MakefileName = self._FILE_NAME_[self._FileType] SubBuildCommandList = [] - for A in PlatformInfo.ArchList: + for A in MyAgo.ArchList: Command = self._MAKE_TEMPLATE_[self._FileType] % {"file":os.path.join("$(BUILD_DIR)", A, MakefileName)} SubBuildCommandList.append(Command) MakefileTemplateDict = { "makefile_header" : self._FILE_HEADER_[self._FileType], "makefile_path" : os.path.join("$(BUILD_DIR)", MakefileName), - "make_path" : PlatformInfo.ToolDefinition["MAKE"]["PATH"], - "platform_name" : PlatformInfo.Name, - "platform_guid" : PlatformInfo.Guid, - "platform_version" : PlatformInfo.Version, - "platform_build_directory" : PlatformInfo.BuildDir, + "make_path" : MyAgo.ToolDefinition["MAKE"]["PATH"], + "platform_name" : MyAgo.Name, + "platform_guid" : MyAgo.Guid, + "platform_version" : MyAgo.Version, + "platform_build_directory" : MyAgo.BuildDir, "conf_directory" : GlobalData.gConfDirectory, - "toolchain_tag" : PlatformInfo.ToolChain, - "build_target" : PlatformInfo.BuildTarget, + "toolchain_tag" : MyAgo.ToolChain, + "build_target" : MyAgo.BuildTarget, "shell_command_code" : self._SHELL_CMD_[self._FileType].keys(), "shell_command" : self._SHELL_CMD_[self._FileType].values(), - 'arch' : list(PlatformInfo.ArchList), - "build_architecture_list" : ','.join(PlatformInfo.ArchList), + 'arch' : list(MyAgo.ArchList), + "build_architecture_list" : ','.join(MyAgo.ArchList), "separator" : Separator, "create_directory_command" : self.GetCreateDirectoryCommand(self.IntermediateDirectoryList), "cleanall_command" : self.GetRemoveDirectoryCommand(self.IntermediateDirectoryList), "sub_build_command" : SubBuildCommandList, "fdf_file" : FdfFileList, - "active_platform" : str(PlatformInfo), - "fd" : PlatformInfo.FdTargetList, - "fv" : PlatformInfo.FvTargetList, - "cap" : PlatformInfo.CapTargetList, + "active_platform" : str(MyAgo), + "fd" : MyAgo.FdTargetList, + "fv" : MyAgo.FvTargetList, + "cap" : MyAgo.CapTargetList, "extra_options" : ExtraOption, "macro" : MacroList, } -- 2.16.2.windows.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-06-29 7:37 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <cover.1530134848.git.jaben.carsey@intel.com> 2018-06-27 21:27 ` [PATCH v1 1/1] BaseTools: AutoGen - clean up access Jaben Carsey 2018-06-29 7:37 ` Zhu, Yonghong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox