Sync tool code to BuildTools project r1739.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9397 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -56,12 +56,11 @@ SUP_MODULE_DXE_SMM_DRIVER = 'DXE_SMM_DRIVER'
|
||||
SUP_MODULE_UEFI_DRIVER = 'UEFI_DRIVER'
|
||||
SUP_MODULE_UEFI_APPLICATION = 'UEFI_APPLICATION'
|
||||
SUP_MODULE_USER_DEFINED = 'USER_DEFINED'
|
||||
SUP_MODULE_SMM_DRIVER = 'SMM_DRIVER'
|
||||
SUP_MODULE_SMM_CORE = 'SMM_CORE'
|
||||
|
||||
SUP_MODULE_LIST = [SUP_MODULE_BASE, SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, \
|
||||
SUP_MODULE_DXE_RUNTIME_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_UEFI_DRIVER, \
|
||||
SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED, SUP_MODULE_SMM_DRIVER, SUP_MODULE_SMM_CORE]
|
||||
SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED, SUP_MODULE_SMM_CORE]
|
||||
SUP_MODULE_LIST_STRING = TAB_VALUE_SPLIT.join(l for l in SUP_MODULE_LIST)
|
||||
|
||||
EDK_COMPONENT_TYPE_LIBRARY = 'LIBRARY'
|
||||
@@ -86,6 +85,7 @@ BINARY_FILE_TYPE_PE32 = 'PE32'
|
||||
BINARY_FILE_TYPE_PIC = 'PIC'
|
||||
BINARY_FILE_TYPE_PEI_DEPEX = 'PEI_DEPEX'
|
||||
BINARY_FILE_TYPE_DXE_DEPEX = 'DXE_DEPEX'
|
||||
BINARY_FILE_TYPE_SMM_DEPEX = 'SMM_DEPEX'
|
||||
BINARY_FILE_TYPE_TE = 'TE'
|
||||
BINARY_FILE_TYPE_VER = 'VER'
|
||||
BINARY_FILE_TYPE_UI = 'UI'
|
||||
|
@@ -2408,7 +2408,7 @@ class FdfParser(object):
|
||||
|
||||
Obj.SectionList.append(FvImageSectionObj)
|
||||
|
||||
elif self.__IsKeyword("PEI_DEPEX_EXP") or self.__IsKeyword("DXE_DEPEX_EXP"):
|
||||
elif self.__IsKeyword("PEI_DEPEX_EXP") or self.__IsKeyword("DXE_DEPEX_EXP") or self.__IsKeyword("SMM_DEPEX_EXP"):
|
||||
DepexSectionObj = CommonDataClass.FdfClass.DepexSectionClassObject()
|
||||
DepexSectionObj.Alignment = AlignValue
|
||||
DepexSectionObj.DepexType = self.__Token
|
||||
@@ -2798,7 +2798,7 @@ class FdfParser(object):
|
||||
"DXE_SMM_DRIVER", "DXE_RUNTIME_DRIVER", \
|
||||
"UEFI_DRIVER", "UEFI_APPLICATION", "USER_DEFINED", "DEFAULT", "BASE", \
|
||||
"SECURITY_CORE", "COMBINED_PEIM_DRIVER", "PIC_PEIM", "RELOCATABLE_PEIM", \
|
||||
"PE32_PEIM", "BS_DRIVER", "RT_DRIVER", "SAL_RT_DRIVER", "APPLICATION", "ACPITABLE", "SMM_DRIVER", "SMM_CORE"):
|
||||
"PE32_PEIM", "BS_DRIVER", "RT_DRIVER", "SAL_RT_DRIVER", "APPLICATION", "ACPITABLE", "SMM_CORE"):
|
||||
raise Warning("Unknown Module type At line ", self.FileName, self.CurrentLineNumber)
|
||||
return self.__Token
|
||||
|
||||
@@ -2842,7 +2842,7 @@ class FdfParser(object):
|
||||
|
||||
Type = self.__Token.strip().upper()
|
||||
if Type not in ("RAW", "FREEFORM", "SEC", "PEI_CORE", "PEIM",\
|
||||
"PEI_DXE_COMBO", "DRIVER", "DXE_CORE", "APPLICATION", "FV_IMAGE", "SMM_DXE_COMBO", "SMM", "SMM_CORE"):
|
||||
"PEI_DXE_COMBO", "DRIVER", "DXE_CORE", "APPLICATION", "FV_IMAGE", "SMM", "SMM_CORE"):
|
||||
raise Warning("Unknown FV type At line ", self.FileName, self.CurrentLineNumber)
|
||||
|
||||
if not self.__IsToken("="):
|
||||
@@ -3221,8 +3221,8 @@ class FdfParser(object):
|
||||
elif SectionType == "RAW":
|
||||
if FileType not in ("BIN", "SEC_BIN", "RAW", "ASL", "ACPI"):
|
||||
raise Warning("Incorrect section file type At Line ", self.FileName, self.CurrentLineNumber)
|
||||
elif SectionType == "DXE_DEPEX":
|
||||
if FileType not in ("DXE_DEPEX", "SEC_DXE_DEPEX"):
|
||||
elif SectionType == "DXE_DEPEX" or SectionType == "SMM_DEPEX":
|
||||
if FileType not in ("DXE_DEPEX", "SEC_DXE_DEPEX", "SMM_DEPEX"):
|
||||
raise Warning("Incorrect section file type At Line ", self.FileName, self.CurrentLineNumber)
|
||||
elif SectionType == "UI":
|
||||
if FileType not in ("UI", "SEC_UI"):
|
||||
|
@@ -66,8 +66,6 @@ gComponentType2ModuleType = {
|
||||
"BS_DRIVER" : "DXE_DRIVER",
|
||||
"RT_DRIVER" : "DXE_RUNTIME_DRIVER",
|
||||
"SAL_RT_DRIVER" : "DXE_SAL_DRIVER",
|
||||
# "BS_DRIVER" : "DXE_SMM_DRIVER",
|
||||
# "BS_DRIVER" : "UEFI_DRIVER",
|
||||
"APPLICATION" : "UEFI_APPLICATION",
|
||||
"LOGO" : "BASE",
|
||||
}
|
||||
|
@@ -316,12 +316,14 @@ def DataRestore(File):
|
||||
# @retval None If path doesn't exist
|
||||
#
|
||||
class DirCache:
|
||||
_CACHE_ = {}
|
||||
_CACHE_ = set()
|
||||
_UPPER_CACHE_ = {}
|
||||
|
||||
def __init__(self, Root):
|
||||
self._Root = Root
|
||||
for F in os.listdir(Root):
|
||||
self._CACHE_[F.upper()] = F
|
||||
self._CACHE_.add(F)
|
||||
self._UPPER_CACHE_[F.upper()] = F
|
||||
|
||||
# =[] operator
|
||||
def __getitem__(self, Path):
|
||||
@@ -330,16 +332,18 @@ class DirCache:
|
||||
return self._Root
|
||||
if Path and Path[0] == os.path.sep:
|
||||
Path = Path[1:]
|
||||
Path = Path.upper()
|
||||
if Path in self._CACHE_:
|
||||
return os.path.join(self._Root, self._CACHE_[Path])
|
||||
return os.path.join(self._Root, Path)
|
||||
UpperPath = Path.upper()
|
||||
if UpperPath in self._UPPER_CACHE_:
|
||||
return os.path.join(self._Root, self._UPPER_CACHE_[UpperPath])
|
||||
|
||||
IndexList = []
|
||||
LastSepIndex = -1
|
||||
SepIndex = Path.find(os.path.sep)
|
||||
while SepIndex > -1:
|
||||
Parent = Path[:SepIndex]
|
||||
if Parent not in self._CACHE_:
|
||||
Parent = UpperPath[:SepIndex]
|
||||
if Parent not in self._UPPER_CACHE_:
|
||||
break
|
||||
LastSepIndex = SepIndex
|
||||
SepIndex = Path.find(os.path.sep, LastSepIndex + 1)
|
||||
@@ -351,22 +355,29 @@ class DirCache:
|
||||
os.chdir(self._Root)
|
||||
SepIndex = LastSepIndex
|
||||
while SepIndex > -1:
|
||||
ParentKey = Path[:SepIndex]
|
||||
if ParentKey not in self._CACHE_:
|
||||
Parent = Path[:SepIndex]
|
||||
ParentKey = UpperPath[:SepIndex]
|
||||
if ParentKey not in self._UPPER_CACHE_:
|
||||
os.chdir(Cwd)
|
||||
return None
|
||||
|
||||
ParentDir = self._CACHE_[ParentKey]
|
||||
if Parent in self._CACHE_:
|
||||
ParentDir = Parent
|
||||
else:
|
||||
ParentDir = self._UPPER_CACHE_[ParentKey]
|
||||
for F in os.listdir(ParentDir):
|
||||
Dir = os.path.join(ParentDir, F)
|
||||
self._CACHE_[Dir.upper()] = Dir
|
||||
self._CACHE_.add(Dir)
|
||||
self._UPPER_CACHE_[Dir.upper()] = Dir
|
||||
|
||||
SepIndex = Path.find(os.path.sep, SepIndex + 1)
|
||||
|
||||
os.chdir(Cwd)
|
||||
if Path not in self._CACHE_:
|
||||
return None
|
||||
return os.path.join(self._Root, self._CACHE_[Path])
|
||||
if Path in self._CACHE_:
|
||||
return os.path.join(self._Root, Path)
|
||||
elif UpperPath in self._UPPER_CACHE_:
|
||||
return os.path.join(self._Root, self._UPPER_CACHE_[UpperPath])
|
||||
return None
|
||||
|
||||
## Get all files of a directory
|
||||
#
|
||||
@@ -683,6 +694,7 @@ class TemplateString(object):
|
||||
## Constructor
|
||||
def __init__(self, Template=None):
|
||||
self.String = ''
|
||||
self.IsBinary = False
|
||||
self._Template = Template
|
||||
self._TemplateSectionList = self._Parse(Template)
|
||||
|
||||
|
Reference in New Issue
Block a user