* [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