* [Patch 1/3] BaseTools: Remove unused logic for EDKI @ 2019-01-09 6:44 BobCF 2019-01-09 7:01 ` Gao, Liming 0 siblings, 1 reply; 3+ messages in thread From: BobCF @ 2019-01-09 6:44 UTC (permalink / raw) To: edk2-devel; +Cc: Feng, Bob C, Liming Gao, Jaben Carsey From: "Feng, Bob C" <bob.c.feng@intel.com> Remove EDK module type support from BaseTools C 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> --- BaseTools/Source/Python/AutoGen/AutoGen.py | 93 ++------- BaseTools/Source/Python/AutoGen/GenC.py | 90 ++++----- BaseTools/Source/Python/AutoGen/GenMake.py | 18 +- BaseTools/Source/Python/Common/DataType.py | 2 - BaseTools/Source/Python/Common/GlobalData.py | 6 - .../Source/Python/Workspace/DecBuildData.py | 1 - .../Source/Python/Workspace/DscBuildData.py | 3 - .../Source/Python/Workspace/InfBuildData.py | 191 +++++------------- .../Source/Python/Workspace/MetaFileParser.py | 22 -- .../Python/Workspace/WorkspaceCommon.py | 29 +-- BaseTools/Source/Python/build/BuildReport.py | 54 ++--- BaseTools/Source/Python/build/build.py | 65 ------ edksetup.bat | 3 - 13 files changed, 116 insertions(+), 461 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index d646cd50ce..d3d0d96e71 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -2174,46 +2174,11 @@ class PlatformAutoGen(AutoGen): Pcd.MaxDatumSize = str(len(Value.split(','))) else: Pcd.MaxDatumSize = str(len(Value) - 1) return Pcds.values() - ## Resolve library names to library modules - # - # (for Edk.x modules) - # - # @param Module The module from which the library names will be resolved - # - # @retval library_list The list of library modules - # - def ResolveLibraryReference(self, Module): - EdkLogger.verbose("") - EdkLogger.verbose("Library instances of module [%s] [%s]:" % (str(Module), self.Arch)) - LibraryConsumerList = [Module] - - # "CompilerStub" is a must for Edk modules - if Module.Libraries: - Module.Libraries.append("CompilerStub") - LibraryList = [] - while len(LibraryConsumerList) > 0: - M = LibraryConsumerList.pop() - for LibraryName in M.Libraries: - Library = self.Platform.LibraryClasses[LibraryName, ':dummy:'] - if Library is None: - for Key in self.Platform.LibraryClasses.data: - if LibraryName.upper() == Key.upper(): - Library = self.Platform.LibraryClasses[Key, ':dummy:'] - break - if Library is None: - EdkLogger.warn("build", "Library [%s] is not found" % LibraryName, File=str(M), - ExtraData="\t%s [%s]" % (str(Module), self.Arch)) - continue - if Library not in LibraryList: - LibraryList.append(Library) - LibraryConsumerList.append(Library) - EdkLogger.verbose("\t" + LibraryName + " : " + str(Library) + ' ' + str(type(Library))) - return LibraryList ## Calculate the priority value of the build option # # @param Key Build option definition contain: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE # @@ -2377,16 +2342,12 @@ class PlatformAutoGen(AutoGen): # # @retval options The options appended with build options in platform # def ApplyBuildOption(self, Module): # Get the different options for the different style module - if Module.AutoGenVersion < 0x00010005: - PlatformOptions = self.EdkBuildOption - ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDK_NAME, Module.ModuleType) - else: - PlatformOptions = self.EdkIIBuildOption - ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDKII_NAME, Module.ModuleType) + PlatformOptions = self.EdkIIBuildOption + ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDKII_NAME, Module.ModuleType) ModuleTypeOptions = self._ExpandBuildOption(ModuleTypeOptions) ModuleOptions = self._ExpandBuildOption(Module.BuildOptions) if Module in self.Platform.Modules: PlatformModule = self.Platform.Modules[str(Module)] PlatformModuleOptions = self._ExpandBuildOption(PlatformModule.BuildOptions) @@ -2422,15 +2383,10 @@ class PlatformAutoGen(AutoGen): if Attr != 'PATH': BuildOptions[Tool][Attr] += " " + mws.handleWsMacro(Value) else: BuildOptions[Tool][Attr] = mws.handleWsMacro(Value) - if Module.AutoGenVersion < 0x00010005 and self.Workspace.UniFlag is not None: - # - # Override UNI flag only for EDK module. - # - BuildOptions['BUILD']['FLAGS'] = self.Workspace.UniFlag return BuildOptions, BuildRuleOrder # # extend lists contained in a dictionary with lists stored in another dictionary # if CopyToDict is not derived from DefaultDict(list) then this may raise exception @@ -2962,18 +2918,17 @@ class ModuleAutoGen(AutoGen): # # EDK II modules must not reference header files outside of the packages they depend on or # within the module's directory tree. Report error if violation. # - if self.AutoGenVersion >= 0x00010005: - for Path in IncPathList: - if (Path not in self.IncludePathList) and (CommonPath([Path, self.MetaFile.Dir]) != self.MetaFile.Dir): - ErrMsg = "The include directory for the EDK II module in this line is invalid %s specified in %s FLAGS '%s'" % (Path, Tool, FlagOption) - EdkLogger.error("build", - PARAMETER_INVALID, - ExtraData=ErrMsg, - File=str(self.MetaFile)) + for Path in IncPathList: + if (Path not in self.IncludePathList) and (CommonPath([Path, self.MetaFile.Dir]) != self.MetaFile.Dir): + ErrMsg = "The include directory for the EDK II module in this line is invalid %s specified in %s FLAGS '%s'" % (Path, Tool, FlagOption) + EdkLogger.error("build", + PARAMETER_INVALID, + ExtraData=ErrMsg, + File=str(self.MetaFile)) RetVal += IncPathList return RetVal ## Return a list of files which can be built from source # @@ -2999,11 +2954,11 @@ class ModuleAutoGen(AutoGen): "but current toolchain family is [%s], buildrule family is [%s]" \ % (str(F), F.ToolChainFamily, self.ToolChainFamily, self.BuildRuleFamily)) continue # add the file path into search path list for file including - if F.Dir not in self.IncludePathList and self.AutoGenVersion >= 0x00010005: + if F.Dir not in self.IncludePathList: self.IncludePathList.insert(0, F.Dir) RetVal.append(F) self._MatchBuildRuleOrder(RetVal) @@ -3261,12 +3216,10 @@ class ModuleAutoGen(AutoGen): @cached_property def DependentLibraryList(self): # only merge library classes and PCD for non-library module if self.IsLibrary: return [] - if self.AutoGenVersion < 0x00010005: - return self.PlatformInfo.ResolveLibraryReference(self.Module) return self.PlatformInfo.ApplyLibraryInstance(self.Module) ## Get the list of PCDs from current module # # @retval list The list of PCD @@ -3351,23 +3304,12 @@ class ModuleAutoGen(AutoGen): # @retval list The list path # @cached_property def IncludePathList(self): RetVal = [] - if self.AutoGenVersion < 0x00010005: - for Inc in self.Module.Includes: - if Inc not in RetVal: - RetVal.append(Inc) - # for Edk modules - Inc = path.join(Inc, self.Arch.capitalize()) - if os.path.exists(Inc) and Inc not in RetVal: - RetVal.append(Inc) - # Edk module needs to put DEBUG_DIR at the end of search path and not to use SOURCE_DIR all the time - RetVal.append(self.DebugDir) - else: - RetVal.append(self.MetaFile.Dir) - RetVal.append(self.DebugDir) + RetVal.append(self.MetaFile.Dir) + RetVal.append(self.DebugDir) for Package in self.Module.Packages: PackageDir = mws.join(self.WorkspaceDir, Package.MetaFile.Dir) if PackageDir not in RetVal: RetVal.append(PackageDir) @@ -3526,14 +3468,10 @@ class ModuleAutoGen(AutoGen): return if self.IsAsBuiltInfCreated: return - # Skip the following code for EDK I inf - if self.AutoGenVersion < 0x00010005: - return - # Skip the following code for libraries if self.IsLibrary: return # Skip the following code for modules with no source files @@ -3986,21 +3924,14 @@ class ModuleAutoGen(AutoGen): AutoGenList = [] IgoredAutoGenList = [] for File in self.AutoGenFileList: if GenC.Generate(File.Path, self.AutoGenFileList[File], File.IsBinary): - #Ignore Edk AutoGen.c - if self.AutoGenVersion < 0x00010005 and File.Name == 'AutoGen.c': - continue - AutoGenList.append(str(File)) else: IgoredAutoGenList.append(str(File)) - # Skip the following code for EDK I inf - if self.AutoGenVersion < 0x00010005: - return for ModuleType in self.DepexList: # Ignore empty [depex] section or [depex] section for SUP_MODULE_USER_DEFINED module if len(self.DepexList[ModuleType]) == 0 or ModuleType == SUP_MODULE_USER_DEFINED: continue diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py index 09626d0b96..ffc900fd81 100644 --- a/BaseTools/Source/Python/AutoGen/GenC.py +++ b/BaseTools/Source/Python/AutoGen/GenC.py @@ -1679,26 +1679,10 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff IncList = [Info.MetaFile.Dir] # Get all files under [Sources] section in inf file for EDK-II module EDK2Module = True SrcList = [F for F in Info.SourceFileList] - if Info.AutoGenVersion < 0x00010005: - EDK2Module = False - # Get all files under the module directory for EDK-I module - Cwd = os.getcwd() - os.chdir(Info.MetaFile.Dir) - for Root, Dirs, Files in os.walk("."): - if 'CVS' in Dirs: - Dirs.remove('CVS') - if '.svn' in Dirs: - Dirs.remove('.svn') - for File in Files: - File = PathClass(os.path.join(Root, File), Info.MetaFile.Dir) - if File in SrcList: - continue - SrcList.append(File) - os.chdir(Cwd) if 'BUILD' in Info.BuildOption and Info.BuildOption['BUILD']['FLAGS'].find('-c') > -1: CompatibleMode = True else: CompatibleMode = False @@ -1982,46 +1966,45 @@ def CreateHeaderCode(Info, AutoGenC, AutoGenH): # file header AutoGenH.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.h'})) # header file Prologue AutoGenH.Append(gAutoGenHPrologueString.Replace({'File':'AUTOGENH','Guid':Info.Guid.replace('-', '_')})) AutoGenH.Append(gAutoGenHCppPrologueString) - if Info.AutoGenVersion >= 0x00010005: - # header files includes - if Info.ModuleType in gModuleTypeHeaderFile: - AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0]) - # - # if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h - # As if modules only uses FixedPcd, then PcdLib is not needed in [LibraryClasses] section. - # - if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds: - AutoGenH.Append("#include <Library/PcdLib.h>\n") - AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;') - AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n') + # header files includes + if Info.ModuleType in gModuleTypeHeaderFile: + AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0]) + # + # if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h + # As if modules only uses FixedPcd, then PcdLib is not needed in [LibraryClasses] section. + # + if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds: + AutoGenH.Append("#include <Library/PcdLib.h>\n") + + AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;') + AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n') - if Info.IsLibrary: - return + if Info.IsLibrary: + return - AutoGenH.Append("#define EFI_CALLER_ID_GUID \\\n %s\n" % GuidStringToGuidStructureString(Info.Guid)) + AutoGenH.Append("#define EFI_CALLER_ID_GUID \\\n %s\n" % GuidStringToGuidStructureString(Info.Guid)) if Info.IsLibrary: return # C file header AutoGenC.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.c'})) - if Info.AutoGenVersion >= 0x00010005: - # C file header files includes - if Info.ModuleType in gModuleTypeHeaderFile: - for Inc in gModuleTypeHeaderFile[Info.ModuleType]: - AutoGenC.Append("#include <%s>\n" % Inc) - else: - AutoGenC.Append("#include <%s>\n" % gBasicHeaderFile) + # C file header files includes + if Info.ModuleType in gModuleTypeHeaderFile: + for Inc in gModuleTypeHeaderFile[Info.ModuleType]: + AutoGenC.Append("#include <%s>\n" % Inc) + else: + AutoGenC.Append("#include <%s>\n" % gBasicHeaderFile) - # - # Publish the CallerId Guid - # - AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % GuidStringToGuidStructureString(Info.Guid)) - AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name) + # + # Publish the CallerId Guid + # + AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % GuidStringToGuidStructureString(Info.Guid)) + AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name) ## Create common code for header file # # @param Info The ModuleAutoGen object # @param AutoGenC The TemplateString object for C code @@ -2043,19 +2026,18 @@ def CreateFooterCode(Info, AutoGenC, AutoGenH): # @param IdfGenBinBuffer Buffer to store Idf string package data # def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer, StringIdf, IdfGenCFlag, IdfGenBinBuffer): CreateHeaderCode(Info, AutoGenC, AutoGenH) - if Info.AutoGenVersion >= 0x00010005: - CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH) - CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH) - CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH) - CreatePcdCode(Info, AutoGenC, AutoGenH) - CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH) - CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH) - CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH) - CreateModuleUnloadImageCode(Info, AutoGenC, AutoGenH) + CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH) + CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH) + CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH) + CreatePcdCode(Info, AutoGenC, AutoGenH) + CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH) + CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH) + CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH) + CreateModuleUnloadImageCode(Info, AutoGenC, AutoGenH) if Info.UnicodeFileList: FileName = "%sStrDefs.h" % Info.Name StringH.Append(gAutoGenHeaderString.Replace({'FileName':FileName})) StringH.Append(gAutoGenHPrologueString.Replace({'File':'STRDEFS', 'Guid':Info.Guid.replace('-', '_')})) @@ -2110,14 +2092,10 @@ def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer, StringIdf.Append("\n#endif\n") AutoGenH.Append('#include "%s"\n' % FileName) CreateFooterCode(Info, AutoGenC, AutoGenH) - # no generation of AutoGen.c for Edk modules without unicode file - if Info.AutoGenVersion < 0x00010005 and len(Info.UnicodeFileList) == 0: - AutoGenC.String = '' - ## Create the code file # # @param FilePath The path of code file # @param Content The content of code file # @param IsBinaryFile The flag indicating if the file is binary file or not diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index ef7bc845d0..4da10e3950 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -474,22 +474,15 @@ cleanlib: if len(MyAgo.Module.ModuleEntryPointList) > 0: ModuleEntryPoint = MyAgo.Module.ModuleEntryPointList[0] else: ModuleEntryPoint = "_ModuleEntryPoint" - # Intel EBC compiler enforces EfiMain - if MyAgo.AutoGenVersion < 0x00010005 and MyAgo.Arch == "EBC": - ArchEntryPoint = "EfiMain" - else: - ArchEntryPoint = ModuleEntryPoint + ArchEntryPoint = ModuleEntryPoint if MyAgo.Arch == "EBC": # EBC compiler always use "EfiStart" as entry point. Only applies to EdkII modules ImageEntryPoint = "EfiStart" - 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 MyAgo.Module.Defines.iteritems(): @@ -623,15 +616,10 @@ cleanlib: ListFileName, "\n".join(self.ListFileMacros[ListFileMacro]), False ) - # Edk modules need <BaseName>StrDefs.h for string ID - #if MyAgo.AutoGenVersion < 0x00010005 and len(MyAgo.UnicodeFileList) > 0: - # BcTargetList = ['strdefs'] - #else: - # BcTargetList = [] BcTargetList = [] MakefileName = self._FILE_NAME_[self._FileType] LibraryMakeCommandList = [] for D in self.LibraryBuildDirectoryList: @@ -1535,17 +1523,13 @@ class TopLevelMakefile(BuildFile): # TRICK: for not generating GenFds call in makefile if no FDF file MacroList = [] 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('\\', '\\\\'))) MacroDict = {} MacroDict.update(GlobalData.gGlobalDefines) MacroDict.update(GlobalData.gCommandLineDefines) - MacroDict.pop("EFI_SOURCE", "dummy") - MacroDict.pop("EDK_SOURCE", "dummy") for MacroName in MacroDict: if MacroDict[MacroName] != "": MacroList.append('"%s=%s"' % (MacroName, MacroDict[MacroName].replace('\\', '\\\\'))) else: MacroList.append('"%s"' % MacroName) diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py index 6b375712b6..ec0a4f3d59 100644 --- a/BaseTools/Source/Python/Common/DataType.py +++ b/BaseTools/Source/Python/Common/DataType.py @@ -45,12 +45,10 @@ TAB_GUID = 'GUID' TAB_PCD_CLEAN_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64} TAB_PCD_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN'} TAB_PCD_NUMERIC_TYPES_VOID = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN', TAB_VOID} -TAB_EDK_SOURCE = '$(EDK_SOURCE)' -TAB_EFI_SOURCE = '$(EFI_SOURCE)' TAB_WORKSPACE = '$(WORKSPACE)' TAB_FV_DIRECTORY = 'FV' TAB_ARCH_NULL = '' TAB_ARCH_COMMON = 'COMMON' diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py index 57048bcae6..5eaee06694 100644 --- a/BaseTools/Source/Python/Common/GlobalData.py +++ b/BaseTools/Source/Python/Common/GlobalData.py @@ -11,17 +11,11 @@ # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. import re gIsWindows = None - -gEdkCompatibilityPkg = "EdkCompatibilityPkg" gWorkspace = "." -gEdkSource = "EdkCompatibilityPkg" -gEfiSource = "." -gEcpSource = "EdkCompatibilityPkg" - gOptions = None gCaseInsensitive = False gAllFiles = None gCommand = None gSKUID_CMD = None diff --git a/BaseTools/Source/Python/Workspace/DecBuildData.py b/BaseTools/Source/Python/Workspace/DecBuildData.py index cc00409fee..b64cbb6b50 100644 --- a/BaseTools/Source/Python/Workspace/DecBuildData.py +++ b/BaseTools/Source/Python/Workspace/DecBuildData.py @@ -296,11 +296,10 @@ class DecBuildData(PackageBuildClassObject): self._Includes = [] self._PrivateIncludes = [] PublicInclues = [] RecordList = self._RawData[MODEL_EFI_INCLUDE, self._Arch] Macros = self._Macros - Macros["EDK_SOURCE"] = GlobalData.gEcpSource for Record in RecordList: File = PathClass(NormPath(Record[0], Macros), self._PackageDir, Arch=self._Arch) LineNo = Record[-1] # validate the path ErrorCode, ErrorInfo = File.Validate() diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py index 7e82e8e934..baca4e9e6b 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -713,11 +713,10 @@ class DscBuildData(PlatformBuildClassObject): return self._Modules self._Modules = OrderedDict() RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch] Macros = self._Macros - Macros["EDK_SOURCE"] = GlobalData.gEcpSource for Record in RecordList: DuplicatedFile = False ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) ModuleId = Record[6] @@ -856,12 +855,10 @@ class DscBuildData(PlatformBuildClassObject): LibraryInstance = LibraryClassDict[self._Arch, ModuleType, LibraryClass] if LibraryInstance is None: continue self._LibraryClasses[LibraryClass, ModuleType] = LibraryInstance - # for Edk style library instances, which are listed in different section - Macros["EDK_SOURCE"] = GlobalData.gEcpSource RecordList = self._RawData[MODEL_EFI_LIBRARY_INSTANCE, self._Arch] for Record in RecordList: File = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) LineNo = Record[-1] # check the file validation 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 @@ -143,14 +143,10 @@ class InfBuildData(ModuleBuildClassObject): ## Get current effective macros @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 @cached_property def Arch(self): @@ -244,110 +240,54 @@ class InfBuildData(ModuleBuildClassObject): self._Macros[Name] = Value # # 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 def AutoGenVersion(self): RetVal = 0x00010000 @@ -522,11 +462,10 @@ class InfBuildData(ModuleBuildClassObject): @cached_class_function def _GetBinaries(self): 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] LineNo = Record[-1] Target = TAB_COMMON @@ -570,35 +509,17 @@ class InfBuildData(ModuleBuildClassObject): for Record in RecordList: LineNo = Record[-1] 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 if self._DependencyFileList: RetVal.extend(self._DependencyFileList) @@ -714,22 +635,20 @@ class InfBuildData(ModuleBuildClassObject): Macros = self._Macros Macros['PROCESSOR'] = GlobalData.gEdkGlobal.get('PROCESSOR', self._Arch) 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) else: File = os.path.join(GlobalData.gWorkspace, File) File = RealPath(os.path.normpath(File)) if File: 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) else: File = os.path.join(GlobalData.gWorkspace, File) @@ -743,30 +662,18 @@ class InfBuildData(ModuleBuildClassObject): else: File = mws.join(GlobalData.gWorkspace, File) 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 @cached_property def Packages(self): 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 ErrorCode, ErrorInfo = File.Validate('.dec') if ErrorCode != 0: diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py index 032220813b..9b35cffcd2 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py @@ -683,22 +683,10 @@ class InfParser(MetaFileParser): if Macros: for Index in range(0, len(self._ValueList)): Value = self._ValueList[Index] if not Value: continue - - if Value.upper().find('$(EFI_SOURCE)\Edk'.upper()) > -1 or Value.upper().find('$(EFI_SOURCE)/Edk'.upper()) > -1: - Value = '$(EDK_SOURCE)' + Value[17:] - if Value.find('$(EFI_SOURCE)') > -1 or Value.find('$(EDK_SOURCE)') > -1: - pass - elif Value.startswith('.'): - pass - elif Value.startswith('$('): - pass - else: - Value = '$(EFI_SOURCE)/' + Value - self._ValueList[Index] = ReplaceMacro(Value, Macros) ## Parse [Sources] section # # Only path can have macro used. So we need to replace them before use. @@ -1592,20 +1580,10 @@ class DscParser(MetaFileParser): __IncludeMacros = {} # # Allow using system environment variables in path after !include # __IncludeMacros['WORKSPACE'] = GlobalData.gGlobalDefines['WORKSPACE'] - if "ECP_SOURCE" in GlobalData.gGlobalDefines: - __IncludeMacros['ECP_SOURCE'] = GlobalData.gGlobalDefines['ECP_SOURCE'] - # - # During GenFds phase call DSC parser, will go into this branch. - # - elif "ECP_SOURCE" in GlobalData.gCommandLineDefines: - __IncludeMacros['ECP_SOURCE'] = GlobalData.gCommandLineDefines['ECP_SOURCE'] - - __IncludeMacros['EFI_SOURCE'] = GlobalData.gGlobalDefines['EFI_SOURCE'] - __IncludeMacros['EDK_SOURCE'] = GlobalData.gGlobalDefines['EDK_SOURCE'] # # Allow using MACROs comes from [Defines] section to keep compatible. # __IncludeMacros.update(self._Macros) diff --git a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py index 55d01fa4b2..ee238e5143 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py @@ -88,14 +88,11 @@ def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain, additionalP # @param Target: Current target # @param Toolchain: Current toolchain # @retval: List of dependent libraries which are InfBuildData instances # def GetLiabraryInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain): - if Module.AutoGenVersion >= 0x00010005: - return GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain) - else: - return _ResolveLibraryReference(Module, Platform) + return GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain) def GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain, FileName = '', EdkLogger = None): ModuleType = Module.ModuleType # add forced library instances (specified under LibraryClasses sections) @@ -253,29 +250,5 @@ def GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolcha # Build the list of constructor and destructir names # The DAG Topo sort produces the destructor order, so the list of constructors must generated in the reverse order # SortedLibraryList.reverse() return SortedLibraryList - -def _ResolveLibraryReference(Module, Platform): - LibraryConsumerList = [Module] - - # "CompilerStub" is a must for Edk modules - if Module.Libraries: - Module.Libraries.append("CompilerStub") - LibraryList = [] - while len(LibraryConsumerList) > 0: - M = LibraryConsumerList.pop() - for LibraryName in M.Libraries: - Library = Platform.LibraryClasses[LibraryName, ':dummy:'] - if Library is None: - for Key in Platform.LibraryClasses.data: - if LibraryName.upper() == Key.upper(): - Library = Platform.LibraryClasses[Key, ':dummy:'] - break - if Library is None: - continue - - if Library not in LibraryList: - LibraryList.append(Library) - LibraryConsumerList.append(Library) - return LibraryList diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py index 3f3c1a12f1..654a69e05c 100644 --- a/BaseTools/Source/Python/build/BuildReport.py +++ b/BaseTools/Source/Python/build/BuildReport.py @@ -330,14 +330,10 @@ class LibraryReport(object): # @param self The object pointer # @param M Module context information # def __init__(self, M): self.LibraryList = [] - if int(str(M.AutoGenVersion), 0) >= 0x00010005: - self._EdkIIModule = True - else: - self._EdkIIModule = False for Lib in M.DependentLibraryList: LibInfPath = str(Lib) LibClassList = Lib.LibraryClass[0].LibraryClass LibConstructorList = Lib.ConstructorList @@ -366,32 +362,27 @@ class LibraryReport(object): FileWrite(File, gSubSectionSep) for LibraryItem in self.LibraryList: LibInfPath = LibraryItem[0] FileWrite(File, LibInfPath) - # - # Report library class, library constructor and destructor for - # EDKII style module. - # - if self._EdkIIModule: - LibClass = LibraryItem[1] - EdkIILibInfo = "" - LibConstructor = " ".join(LibraryItem[2]) - if LibConstructor: - EdkIILibInfo += " C = " + LibConstructor - LibDestructor = " ".join(LibraryItem[3]) - if LibDestructor: - EdkIILibInfo += " D = " + LibDestructor - LibDepex = " ".join(LibraryItem[4]) - if LibDepex: - EdkIILibInfo += " Depex = " + LibDepex - if LibraryItem[5]: - EdkIILibInfo += " Time = " + LibraryItem[5] - if EdkIILibInfo: - FileWrite(File, "{%s: %s}" % (LibClass, EdkIILibInfo)) - else: - FileWrite(File, "{%s}" % LibClass) + LibClass = LibraryItem[1] + EdkIILibInfo = "" + LibConstructor = " ".join(LibraryItem[2]) + if LibConstructor: + EdkIILibInfo += " C = " + LibConstructor + LibDestructor = " ".join(LibraryItem[3]) + if LibDestructor: + EdkIILibInfo += " D = " + LibDestructor + LibDepex = " ".join(LibraryItem[4]) + if LibDepex: + EdkIILibInfo += " Depex = " + LibDepex + if LibraryItem[5]: + EdkIILibInfo += " Time = " + LibraryItem[5] + if EdkIILibInfo: + FileWrite(File, "{%s: %s}" % (LibClass, EdkIILibInfo)) + else: + FileWrite(File, "{%s}" % LibClass) FileWrite(File, gSubSectionEnd) ## # Reports dependency expression information @@ -1544,19 +1535,12 @@ class PredictionReport(object): for Guid in Module.GuidList: self._GuidMap[Guid] = GuidStructureStringToGuidString(Module.GuidList[Guid]) if Module.Guid and not Module.IsLibrary: EntryPoint = " ".join(Module.Module.ModuleEntryPointList) - if int(str(Module.AutoGenVersion), 0) >= 0x00010005: - RealEntryPoint = "_ModuleEntryPoint" - else: - RealEntryPoint = EntryPoint - if EntryPoint == "_ModuleEntryPoint": - CCFlags = Module.BuildOption.get("CC", {}).get("FLAGS", "") - Match = gGlueLibEntryPoint.search(CCFlags) - if Match: - EntryPoint = Match.group(1) + + RealEntryPoint = "_ModuleEntryPoint" self._FfsEntryPoint[Module.Guid.upper()] = (EntryPoint, RealEntryPoint) # diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index 97271e634e..b550bbc3b2 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -120,69 +120,13 @@ def CheckEnvVariable(): if not os.path.exists(Path): EdkLogger.error("build", FILE_NOT_FOUND, "One Path in PACKAGES_PATH doesn't exist", ExtraData=Path) elif ' ' in Path: EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in PACKAGES_PATH", ExtraData=Path) - # - # Check EFI_SOURCE (Edk build convention). EDK_SOURCE will always point to ECP - # - if "ECP_SOURCE" not in os.environ: - os.environ["ECP_SOURCE"] = mws.join(WorkspaceDir, GlobalData.gEdkCompatibilityPkg) - if "EFI_SOURCE" not in os.environ: - os.environ["EFI_SOURCE"] = os.environ["ECP_SOURCE"] - if "EDK_SOURCE" not in os.environ: - os.environ["EDK_SOURCE"] = os.environ["ECP_SOURCE"] - - # - # Unify case of characters on case-insensitive systems - # - EfiSourceDir = os.path.normcase(os.path.normpath(os.environ["EFI_SOURCE"])) - EdkSourceDir = os.path.normcase(os.path.normpath(os.environ["EDK_SOURCE"])) - EcpSourceDir = os.path.normcase(os.path.normpath(os.environ["ECP_SOURCE"])) - os.environ["EFI_SOURCE"] = EfiSourceDir - os.environ["EDK_SOURCE"] = EdkSourceDir - os.environ["ECP_SOURCE"] = EcpSourceDir os.environ["EDK_TOOLS_PATH"] = os.path.normcase(os.environ["EDK_TOOLS_PATH"]) - if not os.path.exists(EcpSourceDir): - EdkLogger.verbose("ECP_SOURCE = %s doesn't exist. Edk modules could not be built." % EcpSourceDir) - elif ' ' in EcpSourceDir: - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in ECP_SOURCE path", - ExtraData=EcpSourceDir) - if not os.path.exists(EdkSourceDir): - if EdkSourceDir == EcpSourceDir: - EdkLogger.verbose("EDK_SOURCE = %s doesn't exist. Edk modules could not be built." % EdkSourceDir) - else: - EdkLogger.error("build", PARAMETER_INVALID, "EDK_SOURCE does not exist", - ExtraData=EdkSourceDir) - elif ' ' in EdkSourceDir: - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in EDK_SOURCE path", - ExtraData=EdkSourceDir) - if not os.path.exists(EfiSourceDir): - if EfiSourceDir == EcpSourceDir: - EdkLogger.verbose("EFI_SOURCE = %s doesn't exist. Edk modules could not be built." % EfiSourceDir) - else: - EdkLogger.error("build", PARAMETER_INVALID, "EFI_SOURCE does not exist", - ExtraData=EfiSourceDir) - elif ' ' in EfiSourceDir: - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in EFI_SOURCE path", - ExtraData=EfiSourceDir) - - # check those variables on single workspace case - if not PackagesPath: - # change absolute path to relative path to WORKSPACE - if EfiSourceDir.upper().find(WorkspaceDir.upper()) != 0: - EdkLogger.error("build", PARAMETER_INVALID, "EFI_SOURCE is not under WORKSPACE", - ExtraData="WORKSPACE = %s\n EFI_SOURCE = %s" % (WorkspaceDir, EfiSourceDir)) - if EdkSourceDir.upper().find(WorkspaceDir.upper()) != 0: - EdkLogger.error("build", PARAMETER_INVALID, "EDK_SOURCE is not under WORKSPACE", - ExtraData="WORKSPACE = %s\n EDK_SOURCE = %s" % (WorkspaceDir, EdkSourceDir)) - if EcpSourceDir.upper().find(WorkspaceDir.upper()) != 0: - EdkLogger.error("build", PARAMETER_INVALID, "ECP_SOURCE is not under WORKSPACE", - ExtraData="WORKSPACE = %s\n ECP_SOURCE = %s" % (WorkspaceDir, EcpSourceDir)) - # check EDK_TOOLS_PATH if "EDK_TOOLS_PATH" not in os.environ: EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE, "Environment variable not found", ExtraData="EDK_TOOLS_PATH") @@ -190,18 +134,12 @@ def CheckEnvVariable(): if "PATH" not in os.environ: EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE, "Environment variable not found", ExtraData="PATH") GlobalData.gWorkspace = WorkspaceDir - GlobalData.gEfiSource = EfiSourceDir - GlobalData.gEdkSource = EdkSourceDir - GlobalData.gEcpSource = EcpSourceDir GlobalData.gGlobalDefines["WORKSPACE"] = WorkspaceDir - GlobalData.gGlobalDefines["EFI_SOURCE"] = EfiSourceDir - GlobalData.gGlobalDefines["EDK_SOURCE"] = EdkSourceDir - GlobalData.gGlobalDefines["ECP_SOURCE"] = EcpSourceDir GlobalData.gGlobalDefines["EDK_TOOLS_PATH"] = os.environ["EDK_TOOLS_PATH"] ## Get normalized file path # # Convert the path to be local format, and remove the WORKSPACE path at the @@ -846,13 +784,10 @@ class Build(): # print current build environment and configuration EdkLogger.quiet("%-16s = %s" % ("WORKSPACE", os.environ["WORKSPACE"])) if "PACKAGES_PATH" in os.environ: # WORKSPACE env has been converted before. Print the same path style with WORKSPACE env. EdkLogger.quiet("%-16s = %s" % ("PACKAGES_PATH", os.path.normcase(os.path.normpath(os.environ["PACKAGES_PATH"])))) - EdkLogger.quiet("%-16s = %s" % ("ECP_SOURCE", os.environ["ECP_SOURCE"])) - EdkLogger.quiet("%-16s = %s" % ("EDK_SOURCE", os.environ["EDK_SOURCE"])) - EdkLogger.quiet("%-16s = %s" % ("EFI_SOURCE", os.environ["EFI_SOURCE"])) EdkLogger.quiet("%-16s = %s" % ("EDK_TOOLS_PATH", os.environ["EDK_TOOLS_PATH"])) if "EDK_TOOLS_BIN" in os.environ: # Print the same path style with WORKSPACE env. EdkLogger.quiet("%-16s = %s" % ("EDK_TOOLS_BIN", os.path.normcase(os.path.normpath(os.environ["EDK_TOOLS_BIN"])))) EdkLogger.quiet("%-16s = %s" % ("CONF_PATH", GlobalData.gConfDirectory)) diff --git a/edksetup.bat b/edksetup.bat index c32755a471..57b5a8c868 100755 --- a/edksetup.bat +++ b/edksetup.bat @@ -40,15 +40,12 @@ if %WORKSPACE% == %CD% ( goto ParseArgs ) :SetWorkSpace @REM set new workspace -@REM clear EFI_SOURCE and EDK_SOURCE for the new workspace if not defined WORKSPACE ( set WORKSPACE=%CD% - set EFI_SOURCE= - set EDK_SOURCE= ) :ParseArgs if /I "%1"=="-h" goto Usage if /I "%1"=="-help" goto Usage -- 2.19.1.windows.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Patch 1/3] BaseTools: Remove unused logic for EDKI 2019-01-09 6:44 [Patch 1/3] BaseTools: Remove unused logic for EDKI BobCF @ 2019-01-09 7:01 ` Gao, Liming 2019-01-09 7:13 ` Feng, Bob C 0 siblings, 1 reply; 3+ messages in thread From: Gao, Liming @ 2019-01-09 7:01 UTC (permalink / raw) To: Feng, Bob C, edk2-devel@lists.01.org; +Cc: Carsey, Jaben This patch removes the logic from BaseTools python code, not C code. And, please also include BZ link in the commit message. Thanks Liming > -----Original Message----- > From: Feng, Bob C > Sent: Wednesday, January 9, 2019 2:44 PM > To: edk2-devel@lists.01.org > Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>; Carsey, Jaben <jaben.carsey@intel.com> > Subject: [Patch 1/3] BaseTools: Remove unused logic for EDKI > > From: "Feng, Bob C" <bob.c.feng@intel.com> > > Remove EDK module type support from BaseTools C 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> > --- > BaseTools/Source/Python/AutoGen/AutoGen.py | 93 ++------- > BaseTools/Source/Python/AutoGen/GenC.py | 90 ++++----- > BaseTools/Source/Python/AutoGen/GenMake.py | 18 +- > BaseTools/Source/Python/Common/DataType.py | 2 - > BaseTools/Source/Python/Common/GlobalData.py | 6 - > .../Source/Python/Workspace/DecBuildData.py | 1 - > .../Source/Python/Workspace/DscBuildData.py | 3 - > .../Source/Python/Workspace/InfBuildData.py | 191 +++++------------- > .../Source/Python/Workspace/MetaFileParser.py | 22 -- > .../Python/Workspace/WorkspaceCommon.py | 29 +-- > BaseTools/Source/Python/build/BuildReport.py | 54 ++--- > BaseTools/Source/Python/build/build.py | 65 ------ > edksetup.bat | 3 - > 13 files changed, 116 insertions(+), 461 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py > index d646cd50ce..d3d0d96e71 100644 > --- a/BaseTools/Source/Python/AutoGen/AutoGen.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py > @@ -2174,46 +2174,11 @@ class PlatformAutoGen(AutoGen): > Pcd.MaxDatumSize = str(len(Value.split(','))) > else: > Pcd.MaxDatumSize = str(len(Value) - 1) > return Pcds.values() > > - ## Resolve library names to library modules > - # > - # (for Edk.x modules) > - # > - # @param Module The module from which the library names will be resolved > - # > - # @retval library_list The list of library modules > - # > - def ResolveLibraryReference(self, Module): > - EdkLogger.verbose("") > - EdkLogger.verbose("Library instances of module [%s] [%s]:" % (str(Module), self.Arch)) > - LibraryConsumerList = [Module] > - > - # "CompilerStub" is a must for Edk modules > - if Module.Libraries: > - Module.Libraries.append("CompilerStub") > - LibraryList = [] > - while len(LibraryConsumerList) > 0: > - M = LibraryConsumerList.pop() > - for LibraryName in M.Libraries: > - Library = self.Platform.LibraryClasses[LibraryName, ':dummy:'] > - if Library is None: > - for Key in self.Platform.LibraryClasses.data: > - if LibraryName.upper() == Key.upper(): > - Library = self.Platform.LibraryClasses[Key, ':dummy:'] > - break > - if Library is None: > - EdkLogger.warn("build", "Library [%s] is not found" % LibraryName, File=str(M), > - ExtraData="\t%s [%s]" % (str(Module), self.Arch)) > - continue > > - if Library not in LibraryList: > - LibraryList.append(Library) > - LibraryConsumerList.append(Library) > - EdkLogger.verbose("\t" + LibraryName + " : " + str(Library) + ' ' + str(type(Library))) > - return LibraryList > > ## Calculate the priority value of the build option > # > # @param Key Build option definition contain: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE > # > @@ -2377,16 +2342,12 @@ class PlatformAutoGen(AutoGen): > # > # @retval options The options appended with build options in platform > # > def ApplyBuildOption(self, Module): > # Get the different options for the different style module > - if Module.AutoGenVersion < 0x00010005: > - PlatformOptions = self.EdkBuildOption > - ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDK_NAME, Module.ModuleType) > - else: > - PlatformOptions = self.EdkIIBuildOption > - ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDKII_NAME, Module.ModuleType) > + PlatformOptions = self.EdkIIBuildOption > + ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDKII_NAME, Module.ModuleType) > ModuleTypeOptions = self._ExpandBuildOption(ModuleTypeOptions) > ModuleOptions = self._ExpandBuildOption(Module.BuildOptions) > if Module in self.Platform.Modules: > PlatformModule = self.Platform.Modules[str(Module)] > PlatformModuleOptions = self._ExpandBuildOption(PlatformModule.BuildOptions) > @@ -2422,15 +2383,10 @@ class PlatformAutoGen(AutoGen): > if Attr != 'PATH': > BuildOptions[Tool][Attr] += " " + mws.handleWsMacro(Value) > else: > BuildOptions[Tool][Attr] = mws.handleWsMacro(Value) > > - if Module.AutoGenVersion < 0x00010005 and self.Workspace.UniFlag is not None: > - # > - # Override UNI flag only for EDK module. > - # > - BuildOptions['BUILD']['FLAGS'] = self.Workspace.UniFlag > return BuildOptions, BuildRuleOrder > > # > # extend lists contained in a dictionary with lists stored in another dictionary > # if CopyToDict is not derived from DefaultDict(list) then this may raise exception > @@ -2962,18 +2918,17 @@ class ModuleAutoGen(AutoGen): > > # > # EDK II modules must not reference header files outside of the packages they depend on or > # within the module's directory tree. Report error if violation. > # > - if self.AutoGenVersion >= 0x00010005: > - for Path in IncPathList: > - if (Path not in self.IncludePathList) and (CommonPath([Path, self.MetaFile.Dir]) != self.MetaFile.Dir): > - ErrMsg = "The include directory for the EDK II module in this line is invalid %s specified in %s FLAGS '%s'" % > (Path, Tool, FlagOption) > - EdkLogger.error("build", > - PARAMETER_INVALID, > - ExtraData=ErrMsg, > - File=str(self.MetaFile)) > + for Path in IncPathList: > + if (Path not in self.IncludePathList) and (CommonPath([Path, self.MetaFile.Dir]) != self.MetaFile.Dir): > + ErrMsg = "The include directory for the EDK II module in this line is invalid %s specified in %s FLAGS '%s'" % > (Path, Tool, FlagOption) > + EdkLogger.error("build", > + PARAMETER_INVALID, > + ExtraData=ErrMsg, > + File=str(self.MetaFile)) > RetVal += IncPathList > return RetVal > > ## Return a list of files which can be built from source > # > @@ -2999,11 +2954,11 @@ class ModuleAutoGen(AutoGen): > "but current toolchain family is [%s], buildrule family is [%s]" \ > % (str(F), F.ToolChainFamily, self.ToolChainFamily, self.BuildRuleFamily)) > continue > > # add the file path into search path list for file including > - if F.Dir not in self.IncludePathList and self.AutoGenVersion >= 0x00010005: > + if F.Dir not in self.IncludePathList: > self.IncludePathList.insert(0, F.Dir) > RetVal.append(F) > > self._MatchBuildRuleOrder(RetVal) > > @@ -3261,12 +3216,10 @@ class ModuleAutoGen(AutoGen): > @cached_property > def DependentLibraryList(self): > # only merge library classes and PCD for non-library module > if self.IsLibrary: > return [] > - if self.AutoGenVersion < 0x00010005: > - return self.PlatformInfo.ResolveLibraryReference(self.Module) > return self.PlatformInfo.ApplyLibraryInstance(self.Module) > > ## Get the list of PCDs from current module > # > # @retval list The list of PCD > @@ -3351,23 +3304,12 @@ class ModuleAutoGen(AutoGen): > # @retval list The list path > # > @cached_property > def IncludePathList(self): > RetVal = [] > - if self.AutoGenVersion < 0x00010005: > - for Inc in self.Module.Includes: > - if Inc not in RetVal: > - RetVal.append(Inc) > - # for Edk modules > - Inc = path.join(Inc, self.Arch.capitalize()) > - if os.path.exists(Inc) and Inc not in RetVal: > - RetVal.append(Inc) > - # Edk module needs to put DEBUG_DIR at the end of search path and not to use SOURCE_DIR all the time > - RetVal.append(self.DebugDir) > - else: > - RetVal.append(self.MetaFile.Dir) > - RetVal.append(self.DebugDir) > + RetVal.append(self.MetaFile.Dir) > + RetVal.append(self.DebugDir) > > for Package in self.Module.Packages: > PackageDir = mws.join(self.WorkspaceDir, Package.MetaFile.Dir) > if PackageDir not in RetVal: > RetVal.append(PackageDir) > @@ -3526,14 +3468,10 @@ class ModuleAutoGen(AutoGen): > return > > if self.IsAsBuiltInfCreated: > return > > - # Skip the following code for EDK I inf > - if self.AutoGenVersion < 0x00010005: > - return > - > # Skip the following code for libraries > if self.IsLibrary: > return > > # Skip the following code for modules with no source files > @@ -3986,21 +3924,14 @@ class ModuleAutoGen(AutoGen): > AutoGenList = [] > IgoredAutoGenList = [] > > for File in self.AutoGenFileList: > if GenC.Generate(File.Path, self.AutoGenFileList[File], File.IsBinary): > - #Ignore Edk AutoGen.c > - if self.AutoGenVersion < 0x00010005 and File.Name == 'AutoGen.c': > - continue > - > AutoGenList.append(str(File)) > else: > IgoredAutoGenList.append(str(File)) > > - # Skip the following code for EDK I inf > - if self.AutoGenVersion < 0x00010005: > - return > > for ModuleType in self.DepexList: > # Ignore empty [depex] section or [depex] section for SUP_MODULE_USER_DEFINED module > if len(self.DepexList[ModuleType]) == 0 or ModuleType == SUP_MODULE_USER_DEFINED: > continue > diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py > index 09626d0b96..ffc900fd81 100644 > --- a/BaseTools/Source/Python/AutoGen/GenC.py > +++ b/BaseTools/Source/Python/AutoGen/GenC.py > @@ -1679,26 +1679,10 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff > > IncList = [Info.MetaFile.Dir] > # Get all files under [Sources] section in inf file for EDK-II module > EDK2Module = True > SrcList = [F for F in Info.SourceFileList] > - if Info.AutoGenVersion < 0x00010005: > - EDK2Module = False > - # Get all files under the module directory for EDK-I module > - Cwd = os.getcwd() > - os.chdir(Info.MetaFile.Dir) > - for Root, Dirs, Files in os.walk("."): > - if 'CVS' in Dirs: > - Dirs.remove('CVS') > - if '.svn' in Dirs: > - Dirs.remove('.svn') > - for File in Files: > - File = PathClass(os.path.join(Root, File), Info.MetaFile.Dir) > - if File in SrcList: > - continue > - SrcList.append(File) > - os.chdir(Cwd) > > if 'BUILD' in Info.BuildOption and Info.BuildOption['BUILD']['FLAGS'].find('-c') > -1: > CompatibleMode = True > else: > CompatibleMode = False > @@ -1982,46 +1966,45 @@ def CreateHeaderCode(Info, AutoGenC, AutoGenH): > # file header > AutoGenH.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.h'})) > # header file Prologue > AutoGenH.Append(gAutoGenHPrologueString.Replace({'File':'AUTOGENH','Guid':Info.Guid.replace('-', '_')})) > AutoGenH.Append(gAutoGenHCppPrologueString) > - if Info.AutoGenVersion >= 0x00010005: > - # header files includes > - if Info.ModuleType in gModuleTypeHeaderFile: > - AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0]) > - # > - # if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h > - # As if modules only uses FixedPcd, then PcdLib is not needed in [LibraryClasses] section. > - # > - if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds: > - AutoGenH.Append("#include <Library/PcdLib.h>\n") > > - AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;') > - AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n') > + # header files includes > + if Info.ModuleType in gModuleTypeHeaderFile: > + AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0]) > + # > + # if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h > + # As if modules only uses FixedPcd, then PcdLib is not needed in [LibraryClasses] section. > + # > + if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds: > + AutoGenH.Append("#include <Library/PcdLib.h>\n") > + > + AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;') > + AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n') > > - if Info.IsLibrary: > - return > + if Info.IsLibrary: > + return > > - AutoGenH.Append("#define EFI_CALLER_ID_GUID \\\n %s\n" % GuidStringToGuidStructureString(Info.Guid)) > + AutoGenH.Append("#define EFI_CALLER_ID_GUID \\\n %s\n" % GuidStringToGuidStructureString(Info.Guid)) > > if Info.IsLibrary: > return > # C file header > AutoGenC.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.c'})) > - if Info.AutoGenVersion >= 0x00010005: > - # C file header files includes > - if Info.ModuleType in gModuleTypeHeaderFile: > - for Inc in gModuleTypeHeaderFile[Info.ModuleType]: > - AutoGenC.Append("#include <%s>\n" % Inc) > - else: > - AutoGenC.Append("#include <%s>\n" % gBasicHeaderFile) > + # C file header files includes > + if Info.ModuleType in gModuleTypeHeaderFile: > + for Inc in gModuleTypeHeaderFile[Info.ModuleType]: > + AutoGenC.Append("#include <%s>\n" % Inc) > + else: > + AutoGenC.Append("#include <%s>\n" % gBasicHeaderFile) > > - # > - # Publish the CallerId Guid > - # > - AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % > GuidStringToGuidStructureString(Info.Guid)) > - AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name) > + # > + # Publish the CallerId Guid > + # > + AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % > GuidStringToGuidStructureString(Info.Guid)) > + AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name) > > ## Create common code for header file > # > # @param Info The ModuleAutoGen object > # @param AutoGenC The TemplateString object for C code > @@ -2043,19 +2026,18 @@ def CreateFooterCode(Info, AutoGenC, AutoGenH): > # @param IdfGenBinBuffer Buffer to store Idf string package data > # > def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer, StringIdf, IdfGenCFlag, IdfGenBinBuffer): > CreateHeaderCode(Info, AutoGenC, AutoGenH) > > - if Info.AutoGenVersion >= 0x00010005: > - CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH) > - CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH) > - CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH) > - CreatePcdCode(Info, AutoGenC, AutoGenH) > - CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH) > - CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH) > - CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH) > - CreateModuleUnloadImageCode(Info, AutoGenC, AutoGenH) > + CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH) > + CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH) > + CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH) > + CreatePcdCode(Info, AutoGenC, AutoGenH) > + CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH) > + CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH) > + CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH) > + CreateModuleUnloadImageCode(Info, AutoGenC, AutoGenH) > > if Info.UnicodeFileList: > FileName = "%sStrDefs.h" % Info.Name > StringH.Append(gAutoGenHeaderString.Replace({'FileName':FileName})) > StringH.Append(gAutoGenHPrologueString.Replace({'File':'STRDEFS', 'Guid':Info.Guid.replace('-', '_')})) > @@ -2110,14 +2092,10 @@ def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer, > StringIdf.Append("\n#endif\n") > AutoGenH.Append('#include "%s"\n' % FileName) > > CreateFooterCode(Info, AutoGenC, AutoGenH) > > - # no generation of AutoGen.c for Edk modules without unicode file > - if Info.AutoGenVersion < 0x00010005 and len(Info.UnicodeFileList) == 0: > - AutoGenC.String = '' > - > ## Create the code file > # > # @param FilePath The path of code file > # @param Content The content of code file > # @param IsBinaryFile The flag indicating if the file is binary file or not > diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py > index ef7bc845d0..4da10e3950 100644 > --- a/BaseTools/Source/Python/AutoGen/GenMake.py > +++ b/BaseTools/Source/Python/AutoGen/GenMake.py > @@ -474,22 +474,15 @@ cleanlib: > if len(MyAgo.Module.ModuleEntryPointList) > 0: > ModuleEntryPoint = MyAgo.Module.ModuleEntryPointList[0] > else: > ModuleEntryPoint = "_ModuleEntryPoint" > > - # Intel EBC compiler enforces EfiMain > - if MyAgo.AutoGenVersion < 0x00010005 and MyAgo.Arch == "EBC": > - ArchEntryPoint = "EfiMain" > - else: > - ArchEntryPoint = ModuleEntryPoint > + ArchEntryPoint = ModuleEntryPoint > > if MyAgo.Arch == "EBC": > # EBC compiler always use "EfiStart" as entry point. Only applies to EdkII modules > ImageEntryPoint = "EfiStart" > - 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 MyAgo.Module.Defines.iteritems(): > @@ -623,15 +616,10 @@ cleanlib: > ListFileName, > "\n".join(self.ListFileMacros[ListFileMacro]), > False > ) > > - # Edk modules need <BaseName>StrDefs.h for string ID > - #if MyAgo.AutoGenVersion < 0x00010005 and len(MyAgo.UnicodeFileList) > 0: > - # BcTargetList = ['strdefs'] > - #else: > - # BcTargetList = [] > BcTargetList = [] > > MakefileName = self._FILE_NAME_[self._FileType] > LibraryMakeCommandList = [] > for D in self.LibraryBuildDirectoryList: > @@ -1535,17 +1523,13 @@ class TopLevelMakefile(BuildFile): > # TRICK: for not generating GenFds call in makefile if no FDF file > MacroList = [] > 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('\\', '\\\\'))) > MacroDict = {} > MacroDict.update(GlobalData.gGlobalDefines) > MacroDict.update(GlobalData.gCommandLineDefines) > - MacroDict.pop("EFI_SOURCE", "dummy") > - MacroDict.pop("EDK_SOURCE", "dummy") > for MacroName in MacroDict: > if MacroDict[MacroName] != "": > MacroList.append('"%s=%s"' % (MacroName, MacroDict[MacroName].replace('\\', '\\\\'))) > else: > MacroList.append('"%s"' % MacroName) > diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py > index 6b375712b6..ec0a4f3d59 100644 > --- a/BaseTools/Source/Python/Common/DataType.py > +++ b/BaseTools/Source/Python/Common/DataType.py > @@ -45,12 +45,10 @@ TAB_GUID = 'GUID' > > TAB_PCD_CLEAN_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64} > TAB_PCD_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN'} > TAB_PCD_NUMERIC_TYPES_VOID = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN', TAB_VOID} > > -TAB_EDK_SOURCE = '$(EDK_SOURCE)' > -TAB_EFI_SOURCE = '$(EFI_SOURCE)' > TAB_WORKSPACE = '$(WORKSPACE)' > TAB_FV_DIRECTORY = 'FV' > > TAB_ARCH_NULL = '' > TAB_ARCH_COMMON = 'COMMON' > diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py > index 57048bcae6..5eaee06694 100644 > --- a/BaseTools/Source/Python/Common/GlobalData.py > +++ b/BaseTools/Source/Python/Common/GlobalData.py > @@ -11,17 +11,11 @@ > # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > > import re > > gIsWindows = None > - > -gEdkCompatibilityPkg = "EdkCompatibilityPkg" > gWorkspace = "." > -gEdkSource = "EdkCompatibilityPkg" > -gEfiSource = "." > -gEcpSource = "EdkCompatibilityPkg" > - > gOptions = None > gCaseInsensitive = False > gAllFiles = None > gCommand = None > gSKUID_CMD = None > diff --git a/BaseTools/Source/Python/Workspace/DecBuildData.py b/BaseTools/Source/Python/Workspace/DecBuildData.py > index cc00409fee..b64cbb6b50 100644 > --- a/BaseTools/Source/Python/Workspace/DecBuildData.py > +++ b/BaseTools/Source/Python/Workspace/DecBuildData.py > @@ -296,11 +296,10 @@ class DecBuildData(PackageBuildClassObject): > self._Includes = [] > self._PrivateIncludes = [] > PublicInclues = [] > RecordList = self._RawData[MODEL_EFI_INCLUDE, self._Arch] > Macros = self._Macros > - Macros["EDK_SOURCE"] = GlobalData.gEcpSource > for Record in RecordList: > File = PathClass(NormPath(Record[0], Macros), self._PackageDir, Arch=self._Arch) > LineNo = Record[-1] > # validate the path > ErrorCode, ErrorInfo = File.Validate() > diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py > index 7e82e8e934..baca4e9e6b 100644 > --- a/BaseTools/Source/Python/Workspace/DscBuildData.py > +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py > @@ -713,11 +713,10 @@ class DscBuildData(PlatformBuildClassObject): > return self._Modules > > self._Modules = OrderedDict() > RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch] > Macros = self._Macros > - Macros["EDK_SOURCE"] = GlobalData.gEcpSource > for Record in RecordList: > DuplicatedFile = False > > ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) > ModuleId = Record[6] > @@ -856,12 +855,10 @@ class DscBuildData(PlatformBuildClassObject): > LibraryInstance = LibraryClassDict[self._Arch, ModuleType, LibraryClass] > if LibraryInstance is None: > continue > self._LibraryClasses[LibraryClass, ModuleType] = LibraryInstance > > - # for Edk style library instances, which are listed in different section > - Macros["EDK_SOURCE"] = GlobalData.gEcpSource > RecordList = self._RawData[MODEL_EFI_LIBRARY_INSTANCE, self._Arch] > for Record in RecordList: > File = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) > LineNo = Record[-1] > # check the file validation > 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 > @@ -143,14 +143,10 @@ class InfBuildData(ModuleBuildClassObject): > > ## Get current effective macros > @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 > @cached_property > def Arch(self): > @@ -244,110 +240,54 @@ class InfBuildData(ModuleBuildClassObject): > self._Macros[Name] = Value > > # > # 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 > def AutoGenVersion(self): > RetVal = 0x00010000 > @@ -522,11 +462,10 @@ class InfBuildData(ModuleBuildClassObject): > @cached_class_function > def _GetBinaries(self): > 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] > LineNo = Record[-1] > Target = TAB_COMMON > @@ -570,35 +509,17 @@ class InfBuildData(ModuleBuildClassObject): > for Record in RecordList: > LineNo = Record[-1] > 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 > if self._DependencyFileList: > RetVal.extend(self._DependencyFileList) > @@ -714,22 +635,20 @@ class InfBuildData(ModuleBuildClassObject): > Macros = self._Macros > Macros['PROCESSOR'] = GlobalData.gEdkGlobal.get('PROCESSOR', self._Arch) > 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) > else: > File = os.path.join(GlobalData.gWorkspace, File) > File = RealPath(os.path.normpath(File)) > if File: > 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) > else: > File = os.path.join(GlobalData.gWorkspace, File) > @@ -743,30 +662,18 @@ class InfBuildData(ModuleBuildClassObject): > else: > File = mws.join(GlobalData.gWorkspace, File) > 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 > @cached_property > def Packages(self): > 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 > ErrorCode, ErrorInfo = File.Validate('.dec') > if ErrorCode != 0: > diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py > index 032220813b..9b35cffcd2 100644 > --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py > +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py > @@ -683,22 +683,10 @@ class InfParser(MetaFileParser): > if Macros: > for Index in range(0, len(self._ValueList)): > Value = self._ValueList[Index] > if not Value: > continue > - > - if Value.upper().find('$(EFI_SOURCE)\Edk'.upper()) > -1 or Value.upper().find('$(EFI_SOURCE)/Edk'.upper()) > -1: > - Value = '$(EDK_SOURCE)' + Value[17:] > - if Value.find('$(EFI_SOURCE)') > -1 or Value.find('$(EDK_SOURCE)') > -1: > - pass > - elif Value.startswith('.'): > - pass > - elif Value.startswith('$('): > - pass > - else: > - Value = '$(EFI_SOURCE)/' + Value > - > self._ValueList[Index] = ReplaceMacro(Value, Macros) > > ## Parse [Sources] section > # > # Only path can have macro used. So we need to replace them before use. > @@ -1592,20 +1580,10 @@ class DscParser(MetaFileParser): > __IncludeMacros = {} > # > # Allow using system environment variables in path after !include > # > __IncludeMacros['WORKSPACE'] = GlobalData.gGlobalDefines['WORKSPACE'] > - if "ECP_SOURCE" in GlobalData.gGlobalDefines: > - __IncludeMacros['ECP_SOURCE'] = GlobalData.gGlobalDefines['ECP_SOURCE'] > - # > - # During GenFds phase call DSC parser, will go into this branch. > - # > - elif "ECP_SOURCE" in GlobalData.gCommandLineDefines: > - __IncludeMacros['ECP_SOURCE'] = GlobalData.gCommandLineDefines['ECP_SOURCE'] > - > - __IncludeMacros['EFI_SOURCE'] = GlobalData.gGlobalDefines['EFI_SOURCE'] > - __IncludeMacros['EDK_SOURCE'] = GlobalData.gGlobalDefines['EDK_SOURCE'] > # > # Allow using MACROs comes from [Defines] section to keep compatible. > # > __IncludeMacros.update(self._Macros) > > diff --git a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py > index 55d01fa4b2..ee238e5143 100644 > --- a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py > +++ b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py > @@ -88,14 +88,11 @@ def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain, additionalP > # @param Target: Current target > # @param Toolchain: Current toolchain > # @retval: List of dependent libraries which are InfBuildData instances > # > def GetLiabraryInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain): > - if Module.AutoGenVersion >= 0x00010005: > - return GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain) > - else: > - return _ResolveLibraryReference(Module, Platform) > + return GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain) > > def GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain, FileName = '', EdkLogger = None): > ModuleType = Module.ModuleType > > # add forced library instances (specified under LibraryClasses sections) > @@ -253,29 +250,5 @@ def GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolcha > # Build the list of constructor and destructir names > # The DAG Topo sort produces the destructor order, so the list of constructors must generated in the reverse order > # > SortedLibraryList.reverse() > return SortedLibraryList > - > -def _ResolveLibraryReference(Module, Platform): > - LibraryConsumerList = [Module] > - > - # "CompilerStub" is a must for Edk modules > - if Module.Libraries: > - Module.Libraries.append("CompilerStub") > - LibraryList = [] > - while len(LibraryConsumerList) > 0: > - M = LibraryConsumerList.pop() > - for LibraryName in M.Libraries: > - Library = Platform.LibraryClasses[LibraryName, ':dummy:'] > - if Library is None: > - for Key in Platform.LibraryClasses.data: > - if LibraryName.upper() == Key.upper(): > - Library = Platform.LibraryClasses[Key, ':dummy:'] > - break > - if Library is None: > - continue > - > - if Library not in LibraryList: > - LibraryList.append(Library) > - LibraryConsumerList.append(Library) > - return LibraryList > diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py > index 3f3c1a12f1..654a69e05c 100644 > --- a/BaseTools/Source/Python/build/BuildReport.py > +++ b/BaseTools/Source/Python/build/BuildReport.py > @@ -330,14 +330,10 @@ class LibraryReport(object): > # @param self The object pointer > # @param M Module context information > # > def __init__(self, M): > self.LibraryList = [] > - if int(str(M.AutoGenVersion), 0) >= 0x00010005: > - self._EdkIIModule = True > - else: > - self._EdkIIModule = False > > for Lib in M.DependentLibraryList: > LibInfPath = str(Lib) > LibClassList = Lib.LibraryClass[0].LibraryClass > LibConstructorList = Lib.ConstructorList > @@ -366,32 +362,27 @@ class LibraryReport(object): > FileWrite(File, gSubSectionSep) > for LibraryItem in self.LibraryList: > LibInfPath = LibraryItem[0] > FileWrite(File, LibInfPath) > > - # > - # Report library class, library constructor and destructor for > - # EDKII style module. > - # > - if self._EdkIIModule: > - LibClass = LibraryItem[1] > - EdkIILibInfo = "" > - LibConstructor = " ".join(LibraryItem[2]) > - if LibConstructor: > - EdkIILibInfo += " C = " + LibConstructor > - LibDestructor = " ".join(LibraryItem[3]) > - if LibDestructor: > - EdkIILibInfo += " D = " + LibDestructor > - LibDepex = " ".join(LibraryItem[4]) > - if LibDepex: > - EdkIILibInfo += " Depex = " + LibDepex > - if LibraryItem[5]: > - EdkIILibInfo += " Time = " + LibraryItem[5] > - if EdkIILibInfo: > - FileWrite(File, "{%s: %s}" % (LibClass, EdkIILibInfo)) > - else: > - FileWrite(File, "{%s}" % LibClass) > + LibClass = LibraryItem[1] > + EdkIILibInfo = "" > + LibConstructor = " ".join(LibraryItem[2]) > + if LibConstructor: > + EdkIILibInfo += " C = " + LibConstructor > + LibDestructor = " ".join(LibraryItem[3]) > + if LibDestructor: > + EdkIILibInfo += " D = " + LibDestructor > + LibDepex = " ".join(LibraryItem[4]) > + if LibDepex: > + EdkIILibInfo += " Depex = " + LibDepex > + if LibraryItem[5]: > + EdkIILibInfo += " Time = " + LibraryItem[5] > + if EdkIILibInfo: > + FileWrite(File, "{%s: %s}" % (LibClass, EdkIILibInfo)) > + else: > + FileWrite(File, "{%s}" % LibClass) > > FileWrite(File, gSubSectionEnd) > > ## > # Reports dependency expression information > @@ -1544,19 +1535,12 @@ class PredictionReport(object): > for Guid in Module.GuidList: > self._GuidMap[Guid] = GuidStructureStringToGuidString(Module.GuidList[Guid]) > > if Module.Guid and not Module.IsLibrary: > EntryPoint = " ".join(Module.Module.ModuleEntryPointList) > - if int(str(Module.AutoGenVersion), 0) >= 0x00010005: > - RealEntryPoint = "_ModuleEntryPoint" > - else: > - RealEntryPoint = EntryPoint > - if EntryPoint == "_ModuleEntryPoint": > - CCFlags = Module.BuildOption.get("CC", {}).get("FLAGS", "") > - Match = gGlueLibEntryPoint.search(CCFlags) > - if Match: > - EntryPoint = Match.group(1) > + > + RealEntryPoint = "_ModuleEntryPoint" > > self._FfsEntryPoint[Module.Guid.upper()] = (EntryPoint, RealEntryPoint) > > > # > diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py > index 97271e634e..b550bbc3b2 100644 > --- a/BaseTools/Source/Python/build/build.py > +++ b/BaseTools/Source/Python/build/build.py > @@ -120,69 +120,13 @@ def CheckEnvVariable(): > if not os.path.exists(Path): > EdkLogger.error("build", FILE_NOT_FOUND, "One Path in PACKAGES_PATH doesn't exist", ExtraData=Path) > elif ' ' in Path: > EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in PACKAGES_PATH", ExtraData=Path) > > - # > - # Check EFI_SOURCE (Edk build convention). EDK_SOURCE will always point to ECP > - # > - if "ECP_SOURCE" not in os.environ: > - os.environ["ECP_SOURCE"] = mws.join(WorkspaceDir, GlobalData.gEdkCompatibilityPkg) > - if "EFI_SOURCE" not in os.environ: > - os.environ["EFI_SOURCE"] = os.environ["ECP_SOURCE"] > - if "EDK_SOURCE" not in os.environ: > - os.environ["EDK_SOURCE"] = os.environ["ECP_SOURCE"] > - > - # > - # Unify case of characters on case-insensitive systems > - # > - EfiSourceDir = os.path.normcase(os.path.normpath(os.environ["EFI_SOURCE"])) > - EdkSourceDir = os.path.normcase(os.path.normpath(os.environ["EDK_SOURCE"])) > - EcpSourceDir = os.path.normcase(os.path.normpath(os.environ["ECP_SOURCE"])) > > - os.environ["EFI_SOURCE"] = EfiSourceDir > - os.environ["EDK_SOURCE"] = EdkSourceDir > - os.environ["ECP_SOURCE"] = EcpSourceDir > os.environ["EDK_TOOLS_PATH"] = os.path.normcase(os.environ["EDK_TOOLS_PATH"]) > > - if not os.path.exists(EcpSourceDir): > - EdkLogger.verbose("ECP_SOURCE = %s doesn't exist. Edk modules could not be built." % EcpSourceDir) > - elif ' ' in EcpSourceDir: > - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in ECP_SOURCE path", > - ExtraData=EcpSourceDir) > - if not os.path.exists(EdkSourceDir): > - if EdkSourceDir == EcpSourceDir: > - EdkLogger.verbose("EDK_SOURCE = %s doesn't exist. Edk modules could not be built." % EdkSourceDir) > - else: > - EdkLogger.error("build", PARAMETER_INVALID, "EDK_SOURCE does not exist", > - ExtraData=EdkSourceDir) > - elif ' ' in EdkSourceDir: > - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in EDK_SOURCE path", > - ExtraData=EdkSourceDir) > - if not os.path.exists(EfiSourceDir): > - if EfiSourceDir == EcpSourceDir: > - EdkLogger.verbose("EFI_SOURCE = %s doesn't exist. Edk modules could not be built." % EfiSourceDir) > - else: > - EdkLogger.error("build", PARAMETER_INVALID, "EFI_SOURCE does not exist", > - ExtraData=EfiSourceDir) > - elif ' ' in EfiSourceDir: > - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in EFI_SOURCE path", > - ExtraData=EfiSourceDir) > - > - # check those variables on single workspace case > - if not PackagesPath: > - # change absolute path to relative path to WORKSPACE > - if EfiSourceDir.upper().find(WorkspaceDir.upper()) != 0: > - EdkLogger.error("build", PARAMETER_INVALID, "EFI_SOURCE is not under WORKSPACE", > - ExtraData="WORKSPACE = %s\n EFI_SOURCE = %s" % (WorkspaceDir, EfiSourceDir)) > - if EdkSourceDir.upper().find(WorkspaceDir.upper()) != 0: > - EdkLogger.error("build", PARAMETER_INVALID, "EDK_SOURCE is not under WORKSPACE", > - ExtraData="WORKSPACE = %s\n EDK_SOURCE = %s" % (WorkspaceDir, EdkSourceDir)) > - if EcpSourceDir.upper().find(WorkspaceDir.upper()) != 0: > - EdkLogger.error("build", PARAMETER_INVALID, "ECP_SOURCE is not under WORKSPACE", > - ExtraData="WORKSPACE = %s\n ECP_SOURCE = %s" % (WorkspaceDir, EcpSourceDir)) > - > # check EDK_TOOLS_PATH > if "EDK_TOOLS_PATH" not in os.environ: > EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE, "Environment variable not found", > ExtraData="EDK_TOOLS_PATH") > > @@ -190,18 +134,12 @@ def CheckEnvVariable(): > if "PATH" not in os.environ: > EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE, "Environment variable not found", > ExtraData="PATH") > > GlobalData.gWorkspace = WorkspaceDir > - GlobalData.gEfiSource = EfiSourceDir > - GlobalData.gEdkSource = EdkSourceDir > - GlobalData.gEcpSource = EcpSourceDir > > GlobalData.gGlobalDefines["WORKSPACE"] = WorkspaceDir > - GlobalData.gGlobalDefines["EFI_SOURCE"] = EfiSourceDir > - GlobalData.gGlobalDefines["EDK_SOURCE"] = EdkSourceDir > - GlobalData.gGlobalDefines["ECP_SOURCE"] = EcpSourceDir > GlobalData.gGlobalDefines["EDK_TOOLS_PATH"] = os.environ["EDK_TOOLS_PATH"] > > ## Get normalized file path > # > # Convert the path to be local format, and remove the WORKSPACE path at the > @@ -846,13 +784,10 @@ class Build(): > # print current build environment and configuration > EdkLogger.quiet("%-16s = %s" % ("WORKSPACE", os.environ["WORKSPACE"])) > if "PACKAGES_PATH" in os.environ: > # WORKSPACE env has been converted before. Print the same path style with WORKSPACE env. > EdkLogger.quiet("%-16s = %s" % ("PACKAGES_PATH", > os.path.normcase(os.path.normpath(os.environ["PACKAGES_PATH"])))) > - EdkLogger.quiet("%-16s = %s" % ("ECP_SOURCE", os.environ["ECP_SOURCE"])) > - EdkLogger.quiet("%-16s = %s" % ("EDK_SOURCE", os.environ["EDK_SOURCE"])) > - EdkLogger.quiet("%-16s = %s" % ("EFI_SOURCE", os.environ["EFI_SOURCE"])) > EdkLogger.quiet("%-16s = %s" % ("EDK_TOOLS_PATH", os.environ["EDK_TOOLS_PATH"])) > if "EDK_TOOLS_BIN" in os.environ: > # Print the same path style with WORKSPACE env. > EdkLogger.quiet("%-16s = %s" % ("EDK_TOOLS_BIN", > os.path.normcase(os.path.normpath(os.environ["EDK_TOOLS_BIN"])))) > EdkLogger.quiet("%-16s = %s" % ("CONF_PATH", GlobalData.gConfDirectory)) > diff --git a/edksetup.bat b/edksetup.bat > index c32755a471..57b5a8c868 100755 > --- a/edksetup.bat > +++ b/edksetup.bat > @@ -40,15 +40,12 @@ if %WORKSPACE% == %CD% ( > goto ParseArgs > ) > > :SetWorkSpace > @REM set new workspace > -@REM clear EFI_SOURCE and EDK_SOURCE for the new workspace > if not defined WORKSPACE ( > set WORKSPACE=%CD% > - set EFI_SOURCE= > - set EDK_SOURCE= > ) > > :ParseArgs > if /I "%1"=="-h" goto Usage > if /I "%1"=="-help" goto Usage > -- > 2.19.1.windows.1 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Patch 1/3] BaseTools: Remove unused logic for EDKI 2019-01-09 7:01 ` Gao, Liming @ 2019-01-09 7:13 ` Feng, Bob C 0 siblings, 0 replies; 3+ messages in thread From: Feng, Bob C @ 2019-01-09 7:13 UTC (permalink / raw) To: Gao, Liming, edk2-devel@lists.01.org; +Cc: Carsey, Jaben Sorry for the typo. I'll resent the patch. -----Original Message----- From: Gao, Liming Sent: Wednesday, January 9, 2019 3:01 PM To: Feng, Bob C <bob.c.feng@intel.com>; edk2-devel@lists.01.org Cc: Carsey, Jaben <jaben.carsey@intel.com> Subject: RE: [Patch 1/3] BaseTools: Remove unused logic for EDKI This patch removes the logic from BaseTools python code, not C code. And, please also include BZ link in the commit message. Thanks Liming > -----Original Message----- > From: Feng, Bob C > Sent: Wednesday, January 9, 2019 2:44 PM > To: edk2-devel@lists.01.org > Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>; Carsey, Jaben <jaben.carsey@intel.com> > Subject: [Patch 1/3] BaseTools: Remove unused logic for EDKI > > From: "Feng, Bob C" <bob.c.feng@intel.com> > > Remove EDK module type support from BaseTools C 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> > --- > BaseTools/Source/Python/AutoGen/AutoGen.py | 93 ++------- > BaseTools/Source/Python/AutoGen/GenC.py | 90 ++++----- > BaseTools/Source/Python/AutoGen/GenMake.py | 18 +- > BaseTools/Source/Python/Common/DataType.py | 2 - > BaseTools/Source/Python/Common/GlobalData.py | 6 - > .../Source/Python/Workspace/DecBuildData.py | 1 - > .../Source/Python/Workspace/DscBuildData.py | 3 - > .../Source/Python/Workspace/InfBuildData.py | 191 +++++------------- > .../Source/Python/Workspace/MetaFileParser.py | 22 -- > .../Python/Workspace/WorkspaceCommon.py | 29 +-- > BaseTools/Source/Python/build/BuildReport.py | 54 ++--- > BaseTools/Source/Python/build/build.py | 65 ------ > edksetup.bat | 3 - > 13 files changed, 116 insertions(+), 461 deletions(-) > > diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py > index d646cd50ce..d3d0d96e71 100644 > --- a/BaseTools/Source/Python/AutoGen/AutoGen.py > +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py > @@ -2174,46 +2174,11 @@ class PlatformAutoGen(AutoGen): > Pcd.MaxDatumSize = str(len(Value.split(','))) > else: > Pcd.MaxDatumSize = str(len(Value) - 1) > return Pcds.values() > > - ## Resolve library names to library modules > - # > - # (for Edk.x modules) > - # > - # @param Module The module from which the library names will be resolved > - # > - # @retval library_list The list of library modules > - # > - def ResolveLibraryReference(self, Module): > - EdkLogger.verbose("") > - EdkLogger.verbose("Library instances of module [%s] [%s]:" % (str(Module), self.Arch)) > - LibraryConsumerList = [Module] > - > - # "CompilerStub" is a must for Edk modules > - if Module.Libraries: > - Module.Libraries.append("CompilerStub") > - LibraryList = [] > - while len(LibraryConsumerList) > 0: > - M = LibraryConsumerList.pop() > - for LibraryName in M.Libraries: > - Library = self.Platform.LibraryClasses[LibraryName, ':dummy:'] > - if Library is None: > - for Key in self.Platform.LibraryClasses.data: > - if LibraryName.upper() == Key.upper(): > - Library = self.Platform.LibraryClasses[Key, ':dummy:'] > - break > - if Library is None: > - EdkLogger.warn("build", "Library [%s] is not found" % LibraryName, File=str(M), > - ExtraData="\t%s [%s]" % (str(Module), self.Arch)) > - continue > > - if Library not in LibraryList: > - LibraryList.append(Library) > - LibraryConsumerList.append(Library) > - EdkLogger.verbose("\t" + LibraryName + " : " + str(Library) + ' ' + str(type(Library))) > - return LibraryList > > ## Calculate the priority value of the build option > # > # @param Key Build option definition contain: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE > # > @@ -2377,16 +2342,12 @@ class PlatformAutoGen(AutoGen): > # > # @retval options The options appended with build options in platform > # > def ApplyBuildOption(self, Module): > # Get the different options for the different style module > - if Module.AutoGenVersion < 0x00010005: > - PlatformOptions = self.EdkBuildOption > - ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDK_NAME, Module.ModuleType) > - else: > - PlatformOptions = self.EdkIIBuildOption > - ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDKII_NAME, Module.ModuleType) > + PlatformOptions = self.EdkIIBuildOption > + ModuleTypeOptions = self.Platform.GetBuildOptionsByModuleType(EDKII_NAME, Module.ModuleType) > ModuleTypeOptions = self._ExpandBuildOption(ModuleTypeOptions) > ModuleOptions = self._ExpandBuildOption(Module.BuildOptions) > if Module in self.Platform.Modules: > PlatformModule = self.Platform.Modules[str(Module)] > PlatformModuleOptions = self._ExpandBuildOption(PlatformModule.BuildOptions) > @@ -2422,15 +2383,10 @@ class PlatformAutoGen(AutoGen): > if Attr != 'PATH': > BuildOptions[Tool][Attr] += " " + mws.handleWsMacro(Value) > else: > BuildOptions[Tool][Attr] = mws.handleWsMacro(Value) > > - if Module.AutoGenVersion < 0x00010005 and self.Workspace.UniFlag is not None: > - # > - # Override UNI flag only for EDK module. > - # > - BuildOptions['BUILD']['FLAGS'] = self.Workspace.UniFlag > return BuildOptions, BuildRuleOrder > > # > # extend lists contained in a dictionary with lists stored in another dictionary > # if CopyToDict is not derived from DefaultDict(list) then this may raise exception > @@ -2962,18 +2918,17 @@ class ModuleAutoGen(AutoGen): > > # > # EDK II modules must not reference header files outside of the packages they depend on or > # within the module's directory tree. Report error if violation. > # > - if self.AutoGenVersion >= 0x00010005: > - for Path in IncPathList: > - if (Path not in self.IncludePathList) and (CommonPath([Path, self.MetaFile.Dir]) != self.MetaFile.Dir): > - ErrMsg = "The include directory for the EDK II module in this line is invalid %s specified in %s FLAGS '%s'" % > (Path, Tool, FlagOption) > - EdkLogger.error("build", > - PARAMETER_INVALID, > - ExtraData=ErrMsg, > - File=str(self.MetaFile)) > + for Path in IncPathList: > + if (Path not in self.IncludePathList) and (CommonPath([Path, self.MetaFile.Dir]) != self.MetaFile.Dir): > + ErrMsg = "The include directory for the EDK II module in this line is invalid %s specified in %s FLAGS '%s'" % > (Path, Tool, FlagOption) > + EdkLogger.error("build", > + PARAMETER_INVALID, > + ExtraData=ErrMsg, > + File=str(self.MetaFile)) > RetVal += IncPathList > return RetVal > > ## Return a list of files which can be built from source > # > @@ -2999,11 +2954,11 @@ class ModuleAutoGen(AutoGen): > "but current toolchain family is [%s], buildrule family is [%s]" \ > % (str(F), F.ToolChainFamily, self.ToolChainFamily, self.BuildRuleFamily)) > continue > > # add the file path into search path list for file including > - if F.Dir not in self.IncludePathList and self.AutoGenVersion >= 0x00010005: > + if F.Dir not in self.IncludePathList: > self.IncludePathList.insert(0, F.Dir) > RetVal.append(F) > > self._MatchBuildRuleOrder(RetVal) > > @@ -3261,12 +3216,10 @@ class ModuleAutoGen(AutoGen): > @cached_property > def DependentLibraryList(self): > # only merge library classes and PCD for non-library module > if self.IsLibrary: > return [] > - if self.AutoGenVersion < 0x00010005: > - return self.PlatformInfo.ResolveLibraryReference(self.Module) > return self.PlatformInfo.ApplyLibraryInstance(self.Module) > > ## Get the list of PCDs from current module > # > # @retval list The list of PCD > @@ -3351,23 +3304,12 @@ class ModuleAutoGen(AutoGen): > # @retval list The list path > # > @cached_property > def IncludePathList(self): > RetVal = [] > - if self.AutoGenVersion < 0x00010005: > - for Inc in self.Module.Includes: > - if Inc not in RetVal: > - RetVal.append(Inc) > - # for Edk modules > - Inc = path.join(Inc, self.Arch.capitalize()) > - if os.path.exists(Inc) and Inc not in RetVal: > - RetVal.append(Inc) > - # Edk module needs to put DEBUG_DIR at the end of search path and not to use SOURCE_DIR all the time > - RetVal.append(self.DebugDir) > - else: > - RetVal.append(self.MetaFile.Dir) > - RetVal.append(self.DebugDir) > + RetVal.append(self.MetaFile.Dir) > + RetVal.append(self.DebugDir) > > for Package in self.Module.Packages: > PackageDir = mws.join(self.WorkspaceDir, Package.MetaFile.Dir) > if PackageDir not in RetVal: > RetVal.append(PackageDir) > @@ -3526,14 +3468,10 @@ class ModuleAutoGen(AutoGen): > return > > if self.IsAsBuiltInfCreated: > return > > - # Skip the following code for EDK I inf > - if self.AutoGenVersion < 0x00010005: > - return > - > # Skip the following code for libraries > if self.IsLibrary: > return > > # Skip the following code for modules with no source files > @@ -3986,21 +3924,14 @@ class ModuleAutoGen(AutoGen): > AutoGenList = [] > IgoredAutoGenList = [] > > for File in self.AutoGenFileList: > if GenC.Generate(File.Path, self.AutoGenFileList[File], File.IsBinary): > - #Ignore Edk AutoGen.c > - if self.AutoGenVersion < 0x00010005 and File.Name == 'AutoGen.c': > - continue > - > AutoGenList.append(str(File)) > else: > IgoredAutoGenList.append(str(File)) > > - # Skip the following code for EDK I inf > - if self.AutoGenVersion < 0x00010005: > - return > > for ModuleType in self.DepexList: > # Ignore empty [depex] section or [depex] section for SUP_MODULE_USER_DEFINED module > if len(self.DepexList[ModuleType]) == 0 or ModuleType == SUP_MODULE_USER_DEFINED: > continue > diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py > index 09626d0b96..ffc900fd81 100644 > --- a/BaseTools/Source/Python/AutoGen/GenC.py > +++ b/BaseTools/Source/Python/AutoGen/GenC.py > @@ -1679,26 +1679,10 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff > > IncList = [Info.MetaFile.Dir] > # Get all files under [Sources] section in inf file for EDK-II module > EDK2Module = True > SrcList = [F for F in Info.SourceFileList] > - if Info.AutoGenVersion < 0x00010005: > - EDK2Module = False > - # Get all files under the module directory for EDK-I module > - Cwd = os.getcwd() > - os.chdir(Info.MetaFile.Dir) > - for Root, Dirs, Files in os.walk("."): > - if 'CVS' in Dirs: > - Dirs.remove('CVS') > - if '.svn' in Dirs: > - Dirs.remove('.svn') > - for File in Files: > - File = PathClass(os.path.join(Root, File), Info.MetaFile.Dir) > - if File in SrcList: > - continue > - SrcList.append(File) > - os.chdir(Cwd) > > if 'BUILD' in Info.BuildOption and Info.BuildOption['BUILD']['FLAGS'].find('-c') > -1: > CompatibleMode = True > else: > CompatibleMode = False > @@ -1982,46 +1966,45 @@ def CreateHeaderCode(Info, AutoGenC, AutoGenH): > # file header > AutoGenH.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.h'})) > # header file Prologue > AutoGenH.Append(gAutoGenHPrologueString.Replace({'File':'AUTOGENH','Guid':Info.Guid.replace('-', '_')})) > AutoGenH.Append(gAutoGenHCppPrologueString) > - if Info.AutoGenVersion >= 0x00010005: > - # header files includes > - if Info.ModuleType in gModuleTypeHeaderFile: > - AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0]) > - # > - # if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h > - # As if modules only uses FixedPcd, then PcdLib is not needed in [LibraryClasses] section. > - # > - if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds: > - AutoGenH.Append("#include <Library/PcdLib.h>\n") > > - AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;') > - AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n') > + # header files includes > + if Info.ModuleType in gModuleTypeHeaderFile: > + AutoGenH.Append("#include <%s>\n" % gModuleTypeHeaderFile[Info.ModuleType][0]) > + # > + # if either PcdLib in [LibraryClasses] sections or there exist Pcd section, add PcdLib.h > + # As if modules only uses FixedPcd, then PcdLib is not needed in [LibraryClasses] section. > + # > + if 'PcdLib' in Info.Module.LibraryClasses or Info.Module.Pcds: > + AutoGenH.Append("#include <Library/PcdLib.h>\n") > + > + AutoGenH.Append('\nextern GUID gEfiCallerIdGuid;') > + AutoGenH.Append('\nextern CHAR8 *gEfiCallerBaseName;\n\n') > > - if Info.IsLibrary: > - return > + if Info.IsLibrary: > + return > > - AutoGenH.Append("#define EFI_CALLER_ID_GUID \\\n %s\n" % GuidStringToGuidStructureString(Info.Guid)) > + AutoGenH.Append("#define EFI_CALLER_ID_GUID \\\n %s\n" % GuidStringToGuidStructureString(Info.Guid)) > > if Info.IsLibrary: > return > # C file header > AutoGenC.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.c'})) > - if Info.AutoGenVersion >= 0x00010005: > - # C file header files includes > - if Info.ModuleType in gModuleTypeHeaderFile: > - for Inc in gModuleTypeHeaderFile[Info.ModuleType]: > - AutoGenC.Append("#include <%s>\n" % Inc) > - else: > - AutoGenC.Append("#include <%s>\n" % gBasicHeaderFile) > + # C file header files includes > + if Info.ModuleType in gModuleTypeHeaderFile: > + for Inc in gModuleTypeHeaderFile[Info.ModuleType]: > + AutoGenC.Append("#include <%s>\n" % Inc) > + else: > + AutoGenC.Append("#include <%s>\n" % gBasicHeaderFile) > > - # > - # Publish the CallerId Guid > - # > - AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % > GuidStringToGuidStructureString(Info.Guid)) > - AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name) > + # > + # Publish the CallerId Guid > + # > + AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED GUID gEfiCallerIdGuid = %s;\n' % > GuidStringToGuidStructureString(Info.Guid)) > + AutoGenC.Append('\nGLOBAL_REMOVE_IF_UNREFERENCED CHAR8 *gEfiCallerBaseName = "%s";\n' % Info.Name) > > ## Create common code for header file > # > # @param Info The ModuleAutoGen object > # @param AutoGenC The TemplateString object for C code > @@ -2043,19 +2026,18 @@ def CreateFooterCode(Info, AutoGenC, AutoGenH): > # @param IdfGenBinBuffer Buffer to store Idf string package data > # > def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer, StringIdf, IdfGenCFlag, IdfGenBinBuffer): > CreateHeaderCode(Info, AutoGenC, AutoGenH) > > - if Info.AutoGenVersion >= 0x00010005: > - CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH) > - CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH) > - CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH) > - CreatePcdCode(Info, AutoGenC, AutoGenH) > - CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH) > - CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH) > - CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH) > - CreateModuleUnloadImageCode(Info, AutoGenC, AutoGenH) > + CreateGuidDefinitionCode(Info, AutoGenC, AutoGenH) > + CreateProtocolDefinitionCode(Info, AutoGenC, AutoGenH) > + CreatePpiDefinitionCode(Info, AutoGenC, AutoGenH) > + CreatePcdCode(Info, AutoGenC, AutoGenH) > + CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH) > + CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH) > + CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH) > + CreateModuleUnloadImageCode(Info, AutoGenC, AutoGenH) > > if Info.UnicodeFileList: > FileName = "%sStrDefs.h" % Info.Name > StringH.Append(gAutoGenHeaderString.Replace({'FileName':FileName})) > StringH.Append(gAutoGenHPrologueString.Replace({'File':'STRDEFS', 'Guid':Info.Guid.replace('-', '_')})) > @@ -2110,14 +2092,10 @@ def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer, > StringIdf.Append("\n#endif\n") > AutoGenH.Append('#include "%s"\n' % FileName) > > CreateFooterCode(Info, AutoGenC, AutoGenH) > > - # no generation of AutoGen.c for Edk modules without unicode file > - if Info.AutoGenVersion < 0x00010005 and len(Info.UnicodeFileList) == 0: > - AutoGenC.String = '' > - > ## Create the code file > # > # @param FilePath The path of code file > # @param Content The content of code file > # @param IsBinaryFile The flag indicating if the file is binary file or not > diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py > index ef7bc845d0..4da10e3950 100644 > --- a/BaseTools/Source/Python/AutoGen/GenMake.py > +++ b/BaseTools/Source/Python/AutoGen/GenMake.py > @@ -474,22 +474,15 @@ cleanlib: > if len(MyAgo.Module.ModuleEntryPointList) > 0: > ModuleEntryPoint = MyAgo.Module.ModuleEntryPointList[0] > else: > ModuleEntryPoint = "_ModuleEntryPoint" > > - # Intel EBC compiler enforces EfiMain > - if MyAgo.AutoGenVersion < 0x00010005 and MyAgo.Arch == "EBC": > - ArchEntryPoint = "EfiMain" > - else: > - ArchEntryPoint = ModuleEntryPoint > + ArchEntryPoint = ModuleEntryPoint > > if MyAgo.Arch == "EBC": > # EBC compiler always use "EfiStart" as entry point. Only applies to EdkII modules > ImageEntryPoint = "EfiStart" > - 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 MyAgo.Module.Defines.iteritems(): > @@ -623,15 +616,10 @@ cleanlib: > ListFileName, > "\n".join(self.ListFileMacros[ListFileMacro]), > False > ) > > - # Edk modules need <BaseName>StrDefs.h for string ID > - #if MyAgo.AutoGenVersion < 0x00010005 and len(MyAgo.UnicodeFileList) > 0: > - # BcTargetList = ['strdefs'] > - #else: > - # BcTargetList = [] > BcTargetList = [] > > MakefileName = self._FILE_NAME_[self._FileType] > LibraryMakeCommandList = [] > for D in self.LibraryBuildDirectoryList: > @@ -1535,17 +1523,13 @@ class TopLevelMakefile(BuildFile): > # TRICK: for not generating GenFds call in makefile if no FDF file > MacroList = [] > 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('\\', '\\\\'))) > MacroDict = {} > MacroDict.update(GlobalData.gGlobalDefines) > MacroDict.update(GlobalData.gCommandLineDefines) > - MacroDict.pop("EFI_SOURCE", "dummy") > - MacroDict.pop("EDK_SOURCE", "dummy") > for MacroName in MacroDict: > if MacroDict[MacroName] != "": > MacroList.append('"%s=%s"' % (MacroName, MacroDict[MacroName].replace('\\', '\\\\'))) > else: > MacroList.append('"%s"' % MacroName) > diff --git a/BaseTools/Source/Python/Common/DataType.py b/BaseTools/Source/Python/Common/DataType.py > index 6b375712b6..ec0a4f3d59 100644 > --- a/BaseTools/Source/Python/Common/DataType.py > +++ b/BaseTools/Source/Python/Common/DataType.py > @@ -45,12 +45,10 @@ TAB_GUID = 'GUID' > > TAB_PCD_CLEAN_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64} > TAB_PCD_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN'} > TAB_PCD_NUMERIC_TYPES_VOID = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN', TAB_VOID} > > -TAB_EDK_SOURCE = '$(EDK_SOURCE)' > -TAB_EFI_SOURCE = '$(EFI_SOURCE)' > TAB_WORKSPACE = '$(WORKSPACE)' > TAB_FV_DIRECTORY = 'FV' > > TAB_ARCH_NULL = '' > TAB_ARCH_COMMON = 'COMMON' > diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py > index 57048bcae6..5eaee06694 100644 > --- a/BaseTools/Source/Python/Common/GlobalData.py > +++ b/BaseTools/Source/Python/Common/GlobalData.py > @@ -11,17 +11,11 @@ > # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > > import re > > gIsWindows = None > - > -gEdkCompatibilityPkg = "EdkCompatibilityPkg" > gWorkspace = "." > -gEdkSource = "EdkCompatibilityPkg" > -gEfiSource = "." > -gEcpSource = "EdkCompatibilityPkg" > - > gOptions = None > gCaseInsensitive = False > gAllFiles = None > gCommand = None > gSKUID_CMD = None > diff --git a/BaseTools/Source/Python/Workspace/DecBuildData.py b/BaseTools/Source/Python/Workspace/DecBuildData.py > index cc00409fee..b64cbb6b50 100644 > --- a/BaseTools/Source/Python/Workspace/DecBuildData.py > +++ b/BaseTools/Source/Python/Workspace/DecBuildData.py > @@ -296,11 +296,10 @@ class DecBuildData(PackageBuildClassObject): > self._Includes = [] > self._PrivateIncludes = [] > PublicInclues = [] > RecordList = self._RawData[MODEL_EFI_INCLUDE, self._Arch] > Macros = self._Macros > - Macros["EDK_SOURCE"] = GlobalData.gEcpSource > for Record in RecordList: > File = PathClass(NormPath(Record[0], Macros), self._PackageDir, Arch=self._Arch) > LineNo = Record[-1] > # validate the path > ErrorCode, ErrorInfo = File.Validate() > diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py > index 7e82e8e934..baca4e9e6b 100644 > --- a/BaseTools/Source/Python/Workspace/DscBuildData.py > +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py > @@ -713,11 +713,10 @@ class DscBuildData(PlatformBuildClassObject): > return self._Modules > > self._Modules = OrderedDict() > RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch] > Macros = self._Macros > - Macros["EDK_SOURCE"] = GlobalData.gEcpSource > for Record in RecordList: > DuplicatedFile = False > > ModuleFile = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) > ModuleId = Record[6] > @@ -856,12 +855,10 @@ class DscBuildData(PlatformBuildClassObject): > LibraryInstance = LibraryClassDict[self._Arch, ModuleType, LibraryClass] > if LibraryInstance is None: > continue > self._LibraryClasses[LibraryClass, ModuleType] = LibraryInstance > > - # for Edk style library instances, which are listed in different section > - Macros["EDK_SOURCE"] = GlobalData.gEcpSource > RecordList = self._RawData[MODEL_EFI_LIBRARY_INSTANCE, self._Arch] > for Record in RecordList: > File = PathClass(NormPath(Record[0], Macros), GlobalData.gWorkspace, Arch=self._Arch) > LineNo = Record[-1] > # check the file validation > 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 > @@ -143,14 +143,10 @@ class InfBuildData(ModuleBuildClassObject): > > ## Get current effective macros > @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 > @cached_property > def Arch(self): > @@ -244,110 +240,54 @@ class InfBuildData(ModuleBuildClassObject): > self._Macros[Name] = Value > > # > # 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 > def AutoGenVersion(self): > RetVal = 0x00010000 > @@ -522,11 +462,10 @@ class InfBuildData(ModuleBuildClassObject): > @cached_class_function > def _GetBinaries(self): > 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] > LineNo = Record[-1] > Target = TAB_COMMON > @@ -570,35 +509,17 @@ class InfBuildData(ModuleBuildClassObject): > for Record in RecordList: > LineNo = Record[-1] > 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 > if self._DependencyFileList: > RetVal.extend(self._DependencyFileList) > @@ -714,22 +635,20 @@ class InfBuildData(ModuleBuildClassObject): > Macros = self._Macros > Macros['PROCESSOR'] = GlobalData.gEdkGlobal.get('PROCESSOR', self._Arch) > 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) > else: > File = os.path.join(GlobalData.gWorkspace, File) > File = RealPath(os.path.normpath(File)) > if File: > 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) > else: > File = os.path.join(GlobalData.gWorkspace, File) > @@ -743,30 +662,18 @@ class InfBuildData(ModuleBuildClassObject): > else: > File = mws.join(GlobalData.gWorkspace, File) > 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 > @cached_property > def Packages(self): > 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 > ErrorCode, ErrorInfo = File.Validate('.dec') > if ErrorCode != 0: > diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py > index 032220813b..9b35cffcd2 100644 > --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py > +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py > @@ -683,22 +683,10 @@ class InfParser(MetaFileParser): > if Macros: > for Index in range(0, len(self._ValueList)): > Value = self._ValueList[Index] > if not Value: > continue > - > - if Value.upper().find('$(EFI_SOURCE)\Edk'.upper()) > -1 or Value.upper().find('$(EFI_SOURCE)/Edk'.upper()) > -1: > - Value = '$(EDK_SOURCE)' + Value[17:] > - if Value.find('$(EFI_SOURCE)') > -1 or Value.find('$(EDK_SOURCE)') > -1: > - pass > - elif Value.startswith('.'): > - pass > - elif Value.startswith('$('): > - pass > - else: > - Value = '$(EFI_SOURCE)/' + Value > - > self._ValueList[Index] = ReplaceMacro(Value, Macros) > > ## Parse [Sources] section > # > # Only path can have macro used. So we need to replace them before use. > @@ -1592,20 +1580,10 @@ class DscParser(MetaFileParser): > __IncludeMacros = {} > # > # Allow using system environment variables in path after !include > # > __IncludeMacros['WORKSPACE'] = GlobalData.gGlobalDefines['WORKSPACE'] > - if "ECP_SOURCE" in GlobalData.gGlobalDefines: > - __IncludeMacros['ECP_SOURCE'] = GlobalData.gGlobalDefines['ECP_SOURCE'] > - # > - # During GenFds phase call DSC parser, will go into this branch. > - # > - elif "ECP_SOURCE" in GlobalData.gCommandLineDefines: > - __IncludeMacros['ECP_SOURCE'] = GlobalData.gCommandLineDefines['ECP_SOURCE'] > - > - __IncludeMacros['EFI_SOURCE'] = GlobalData.gGlobalDefines['EFI_SOURCE'] > - __IncludeMacros['EDK_SOURCE'] = GlobalData.gGlobalDefines['EDK_SOURCE'] > # > # Allow using MACROs comes from [Defines] section to keep compatible. > # > __IncludeMacros.update(self._Macros) > > diff --git a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py > index 55d01fa4b2..ee238e5143 100644 > --- a/BaseTools/Source/Python/Workspace/WorkspaceCommon.py > +++ b/BaseTools/Source/Python/Workspace/WorkspaceCommon.py > @@ -88,14 +88,11 @@ def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain, additionalP > # @param Target: Current target > # @param Toolchain: Current toolchain > # @retval: List of dependent libraries which are InfBuildData instances > # > def GetLiabraryInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain): > - if Module.AutoGenVersion >= 0x00010005: > - return GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain) > - else: > - return _ResolveLibraryReference(Module, Platform) > + return GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain) > > def GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolchain, FileName = '', EdkLogger = None): > ModuleType = Module.ModuleType > > # add forced library instances (specified under LibraryClasses sections) > @@ -253,29 +250,5 @@ def GetModuleLibInstances(Module, Platform, BuildDatabase, Arch, Target, Toolcha > # Build the list of constructor and destructir names > # The DAG Topo sort produces the destructor order, so the list of constructors must generated in the reverse order > # > SortedLibraryList.reverse() > return SortedLibraryList > - > -def _ResolveLibraryReference(Module, Platform): > - LibraryConsumerList = [Module] > - > - # "CompilerStub" is a must for Edk modules > - if Module.Libraries: > - Module.Libraries.append("CompilerStub") > - LibraryList = [] > - while len(LibraryConsumerList) > 0: > - M = LibraryConsumerList.pop() > - for LibraryName in M.Libraries: > - Library = Platform.LibraryClasses[LibraryName, ':dummy:'] > - if Library is None: > - for Key in Platform.LibraryClasses.data: > - if LibraryName.upper() == Key.upper(): > - Library = Platform.LibraryClasses[Key, ':dummy:'] > - break > - if Library is None: > - continue > - > - if Library not in LibraryList: > - LibraryList.append(Library) > - LibraryConsumerList.append(Library) > - return LibraryList > diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py > index 3f3c1a12f1..654a69e05c 100644 > --- a/BaseTools/Source/Python/build/BuildReport.py > +++ b/BaseTools/Source/Python/build/BuildReport.py > @@ -330,14 +330,10 @@ class LibraryReport(object): > # @param self The object pointer > # @param M Module context information > # > def __init__(self, M): > self.LibraryList = [] > - if int(str(M.AutoGenVersion), 0) >= 0x00010005: > - self._EdkIIModule = True > - else: > - self._EdkIIModule = False > > for Lib in M.DependentLibraryList: > LibInfPath = str(Lib) > LibClassList = Lib.LibraryClass[0].LibraryClass > LibConstructorList = Lib.ConstructorList > @@ -366,32 +362,27 @@ class LibraryReport(object): > FileWrite(File, gSubSectionSep) > for LibraryItem in self.LibraryList: > LibInfPath = LibraryItem[0] > FileWrite(File, LibInfPath) > > - # > - # Report library class, library constructor and destructor for > - # EDKII style module. > - # > - if self._EdkIIModule: > - LibClass = LibraryItem[1] > - EdkIILibInfo = "" > - LibConstructor = " ".join(LibraryItem[2]) > - if LibConstructor: > - EdkIILibInfo += " C = " + LibConstructor > - LibDestructor = " ".join(LibraryItem[3]) > - if LibDestructor: > - EdkIILibInfo += " D = " + LibDestructor > - LibDepex = " ".join(LibraryItem[4]) > - if LibDepex: > - EdkIILibInfo += " Depex = " + LibDepex > - if LibraryItem[5]: > - EdkIILibInfo += " Time = " + LibraryItem[5] > - if EdkIILibInfo: > - FileWrite(File, "{%s: %s}" % (LibClass, EdkIILibInfo)) > - else: > - FileWrite(File, "{%s}" % LibClass) > + LibClass = LibraryItem[1] > + EdkIILibInfo = "" > + LibConstructor = " ".join(LibraryItem[2]) > + if LibConstructor: > + EdkIILibInfo += " C = " + LibConstructor > + LibDestructor = " ".join(LibraryItem[3]) > + if LibDestructor: > + EdkIILibInfo += " D = " + LibDestructor > + LibDepex = " ".join(LibraryItem[4]) > + if LibDepex: > + EdkIILibInfo += " Depex = " + LibDepex > + if LibraryItem[5]: > + EdkIILibInfo += " Time = " + LibraryItem[5] > + if EdkIILibInfo: > + FileWrite(File, "{%s: %s}" % (LibClass, EdkIILibInfo)) > + else: > + FileWrite(File, "{%s}" % LibClass) > > FileWrite(File, gSubSectionEnd) > > ## > # Reports dependency expression information > @@ -1544,19 +1535,12 @@ class PredictionReport(object): > for Guid in Module.GuidList: > self._GuidMap[Guid] = GuidStructureStringToGuidString(Module.GuidList[Guid]) > > if Module.Guid and not Module.IsLibrary: > EntryPoint = " ".join(Module.Module.ModuleEntryPointList) > - if int(str(Module.AutoGenVersion), 0) >= 0x00010005: > - RealEntryPoint = "_ModuleEntryPoint" > - else: > - RealEntryPoint = EntryPoint > - if EntryPoint == "_ModuleEntryPoint": > - CCFlags = Module.BuildOption.get("CC", {}).get("FLAGS", "") > - Match = gGlueLibEntryPoint.search(CCFlags) > - if Match: > - EntryPoint = Match.group(1) > + > + RealEntryPoint = "_ModuleEntryPoint" > > self._FfsEntryPoint[Module.Guid.upper()] = (EntryPoint, RealEntryPoint) > > > # > diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py > index 97271e634e..b550bbc3b2 100644 > --- a/BaseTools/Source/Python/build/build.py > +++ b/BaseTools/Source/Python/build/build.py > @@ -120,69 +120,13 @@ def CheckEnvVariable(): > if not os.path.exists(Path): > EdkLogger.error("build", FILE_NOT_FOUND, "One Path in PACKAGES_PATH doesn't exist", ExtraData=Path) > elif ' ' in Path: > EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in PACKAGES_PATH", ExtraData=Path) > > - # > - # Check EFI_SOURCE (Edk build convention). EDK_SOURCE will always point to ECP > - # > - if "ECP_SOURCE" not in os.environ: > - os.environ["ECP_SOURCE"] = mws.join(WorkspaceDir, GlobalData.gEdkCompatibilityPkg) > - if "EFI_SOURCE" not in os.environ: > - os.environ["EFI_SOURCE"] = os.environ["ECP_SOURCE"] > - if "EDK_SOURCE" not in os.environ: > - os.environ["EDK_SOURCE"] = os.environ["ECP_SOURCE"] > - > - # > - # Unify case of characters on case-insensitive systems > - # > - EfiSourceDir = os.path.normcase(os.path.normpath(os.environ["EFI_SOURCE"])) > - EdkSourceDir = os.path.normcase(os.path.normpath(os.environ["EDK_SOURCE"])) > - EcpSourceDir = os.path.normcase(os.path.normpath(os.environ["ECP_SOURCE"])) > > - os.environ["EFI_SOURCE"] = EfiSourceDir > - os.environ["EDK_SOURCE"] = EdkSourceDir > - os.environ["ECP_SOURCE"] = EcpSourceDir > os.environ["EDK_TOOLS_PATH"] = os.path.normcase(os.environ["EDK_TOOLS_PATH"]) > > - if not os.path.exists(EcpSourceDir): > - EdkLogger.verbose("ECP_SOURCE = %s doesn't exist. Edk modules could not be built." % EcpSourceDir) > - elif ' ' in EcpSourceDir: > - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in ECP_SOURCE path", > - ExtraData=EcpSourceDir) > - if not os.path.exists(EdkSourceDir): > - if EdkSourceDir == EcpSourceDir: > - EdkLogger.verbose("EDK_SOURCE = %s doesn't exist. Edk modules could not be built." % EdkSourceDir) > - else: > - EdkLogger.error("build", PARAMETER_INVALID, "EDK_SOURCE does not exist", > - ExtraData=EdkSourceDir) > - elif ' ' in EdkSourceDir: > - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in EDK_SOURCE path", > - ExtraData=EdkSourceDir) > - if not os.path.exists(EfiSourceDir): > - if EfiSourceDir == EcpSourceDir: > - EdkLogger.verbose("EFI_SOURCE = %s doesn't exist. Edk modules could not be built." % EfiSourceDir) > - else: > - EdkLogger.error("build", PARAMETER_INVALID, "EFI_SOURCE does not exist", > - ExtraData=EfiSourceDir) > - elif ' ' in EfiSourceDir: > - EdkLogger.error("build", FORMAT_NOT_SUPPORTED, "No space is allowed in EFI_SOURCE path", > - ExtraData=EfiSourceDir) > - > - # check those variables on single workspace case > - if not PackagesPath: > - # change absolute path to relative path to WORKSPACE > - if EfiSourceDir.upper().find(WorkspaceDir.upper()) != 0: > - EdkLogger.error("build", PARAMETER_INVALID, "EFI_SOURCE is not under WORKSPACE", > - ExtraData="WORKSPACE = %s\n EFI_SOURCE = %s" % (WorkspaceDir, EfiSourceDir)) > - if EdkSourceDir.upper().find(WorkspaceDir.upper()) != 0: > - EdkLogger.error("build", PARAMETER_INVALID, "EDK_SOURCE is not under WORKSPACE", > - ExtraData="WORKSPACE = %s\n EDK_SOURCE = %s" % (WorkspaceDir, EdkSourceDir)) > - if EcpSourceDir.upper().find(WorkspaceDir.upper()) != 0: > - EdkLogger.error("build", PARAMETER_INVALID, "ECP_SOURCE is not under WORKSPACE", > - ExtraData="WORKSPACE = %s\n ECP_SOURCE = %s" % (WorkspaceDir, EcpSourceDir)) > - > # check EDK_TOOLS_PATH > if "EDK_TOOLS_PATH" not in os.environ: > EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE, "Environment variable not found", > ExtraData="EDK_TOOLS_PATH") > > @@ -190,18 +134,12 @@ def CheckEnvVariable(): > if "PATH" not in os.environ: > EdkLogger.error("build", ATTRIBUTE_NOT_AVAILABLE, "Environment variable not found", > ExtraData="PATH") > > GlobalData.gWorkspace = WorkspaceDir > - GlobalData.gEfiSource = EfiSourceDir > - GlobalData.gEdkSource = EdkSourceDir > - GlobalData.gEcpSource = EcpSourceDir > > GlobalData.gGlobalDefines["WORKSPACE"] = WorkspaceDir > - GlobalData.gGlobalDefines["EFI_SOURCE"] = EfiSourceDir > - GlobalData.gGlobalDefines["EDK_SOURCE"] = EdkSourceDir > - GlobalData.gGlobalDefines["ECP_SOURCE"] = EcpSourceDir > GlobalData.gGlobalDefines["EDK_TOOLS_PATH"] = os.environ["EDK_TOOLS_PATH"] > > ## Get normalized file path > # > # Convert the path to be local format, and remove the WORKSPACE path at the > @@ -846,13 +784,10 @@ class Build(): > # print current build environment and configuration > EdkLogger.quiet("%-16s = %s" % ("WORKSPACE", os.environ["WORKSPACE"])) > if "PACKAGES_PATH" in os.environ: > # WORKSPACE env has been converted before. Print the same path style with WORKSPACE env. > EdkLogger.quiet("%-16s = %s" % ("PACKAGES_PATH", > os.path.normcase(os.path.normpath(os.environ["PACKAGES_PATH"])))) > - EdkLogger.quiet("%-16s = %s" % ("ECP_SOURCE", os.environ["ECP_SOURCE"])) > - EdkLogger.quiet("%-16s = %s" % ("EDK_SOURCE", os.environ["EDK_SOURCE"])) > - EdkLogger.quiet("%-16s = %s" % ("EFI_SOURCE", os.environ["EFI_SOURCE"])) > EdkLogger.quiet("%-16s = %s" % ("EDK_TOOLS_PATH", os.environ["EDK_TOOLS_PATH"])) > if "EDK_TOOLS_BIN" in os.environ: > # Print the same path style with WORKSPACE env. > EdkLogger.quiet("%-16s = %s" % ("EDK_TOOLS_BIN", > os.path.normcase(os.path.normpath(os.environ["EDK_TOOLS_BIN"])))) > EdkLogger.quiet("%-16s = %s" % ("CONF_PATH", GlobalData.gConfDirectory)) > diff --git a/edksetup.bat b/edksetup.bat > index c32755a471..57b5a8c868 100755 > --- a/edksetup.bat > +++ b/edksetup.bat > @@ -40,15 +40,12 @@ if %WORKSPACE% == %CD% ( > goto ParseArgs > ) > > :SetWorkSpace > @REM set new workspace > -@REM clear EFI_SOURCE and EDK_SOURCE for the new workspace > if not defined WORKSPACE ( > set WORKSPACE=%CD% > - set EFI_SOURCE= > - set EDK_SOURCE= > ) > > :ParseArgs > if /I "%1"=="-h" goto Usage > if /I "%1"=="-help" goto Usage > -- > 2.19.1.windows.1 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-01-09 7:13 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-09 6:44 [Patch 1/3] BaseTools: Remove unused logic for EDKI BobCF 2019-01-09 7:01 ` Gao, Liming 2019-01-09 7:13 ` Feng, Bob C
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox