mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
Sync EDKII BaseTools to BaseTools project r2068.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10937 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
5b7183efb1
commit
a725268048
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1172,14 +1172,15 @@ def ParseConsoleLog(Filename):
|
||||
#
|
||||
def CheckPcdDatum(Type, Value):
|
||||
if Type == "VOID*":
|
||||
if not ((Value.startswith('L"') or Value.startswith('"') and Value.endswith('"'))
|
||||
if not (((Value.startswith('L"') or Value.startswith('"')) and Value.endswith('"'))
|
||||
or (Value.startswith('{') and Value.endswith('}'))
|
||||
):
|
||||
return False, "Invalid value [%s] of type [%s]; must be in the form of {...} for array"\
|
||||
", or \"...\" for string, or L\"...\" for unicode string" % (Value, Type)
|
||||
elif Type == 'BOOLEAN':
|
||||
if Value not in ['TRUE', 'FALSE']:
|
||||
return False, "Invalid value [%s] of type [%s]; must be TRUE or FALSE" % (Value, Type)
|
||||
if Value not in ['TRUE', 'True', 'true', '0x1', '0x01', '1', 'FALSE', 'False', 'false', '0x0', '0x00', '0']:
|
||||
return False, "Invalid value [%s] of type [%s]; must be one of TRUE, True, true, 0x1, 0x01, 1"\
|
||||
", FALSE, False, false, 0x0, 0x00, 0" % (Value, Type)
|
||||
elif type(Value) == type(""):
|
||||
try:
|
||||
Value = long(Value, 0)
|
||||
|
@ -41,7 +41,7 @@ gHexNumberPattern = re.compile("0[xX]([0-9a-fA-F]+)")
|
||||
## Regular expression for matching "Include ()" in asl file
|
||||
gAslIncludePattern = re.compile("^(\s*)[iI]nclude\s*\(\"?([^\"\(\)]+)\"\)", re.MULTILINE)
|
||||
## Regular expression for matching C style #include "XXX.asl" in asl file
|
||||
gAslCIncludePattern = re.compile(r'^(\s*)#include\s*[<"]\s*([-\\/\w.]+)\s*[>"]', re.MULTILINE)
|
||||
gAslCIncludePattern = re.compile(r'^(\s*)#include\s*[<"]\s*([-\\/\w.]+)\s*([>"])', re.MULTILINE)
|
||||
## Regular expression for matching constant with 'ULL' and 'UL', 'LL', 'L' postfix
|
||||
gLongNumberPattern = re.compile("(0[xX][0-9a-fA-F]+|[0-9]+)U?LL", re.MULTILINE)
|
||||
## Patterns used to convert EDK conventions to EDK2 ECP conventions
|
||||
@ -273,12 +273,23 @@ def TrimPreprocessedVfr(Source, Target):
|
||||
# @param Source File to be read
|
||||
# @param Indent Spaces before the Include() statement
|
||||
# @param IncludePathList The list of external include file
|
||||
# @param LocalSearchPath If LocalSearchPath is specified, this path will be searched
|
||||
# first for the included file; otherwise, only the path specified
|
||||
# in the IncludePathList will be searched.
|
||||
#
|
||||
def DoInclude(Source, Indent='', IncludePathList=[]):
|
||||
def DoInclude(Source, Indent='', IncludePathList=[], LocalSearchPath=None):
|
||||
NewFileContent = []
|
||||
|
||||
try:
|
||||
for IncludePath in IncludePathList:
|
||||
#
|
||||
# Search LocalSearchPath first if it is specified.
|
||||
#
|
||||
if LocalSearchPath:
|
||||
SearchPathList = [LocalSearchPath] + IncludePathList
|
||||
else:
|
||||
SearchPathList = IncludePathList
|
||||
|
||||
for IncludePath in SearchPathList:
|
||||
IncludeFile = os.path.join(IncludePath, Source)
|
||||
if os.path.isfile(IncludeFile):
|
||||
F = open(IncludeFile, "r")
|
||||
@ -298,15 +309,21 @@ def DoInclude(Source, Indent='', IncludePathList=[]):
|
||||
gIncludedAslFile.append(IncludeFile)
|
||||
|
||||
for Line in F:
|
||||
LocalSearchPath = None
|
||||
Result = gAslIncludePattern.findall(Line)
|
||||
if len(Result) == 0:
|
||||
Result = gAslCIncludePattern.findall(Line)
|
||||
if len(Result) == 0 or os.path.splitext(Result[0][1])[1].lower() not in [".asl", ".asi"]:
|
||||
NewFileContent.append("%s%s" % (Indent, Line))
|
||||
continue
|
||||
#
|
||||
# We should first search the local directory if current file are using pattern #include "XXX"
|
||||
#
|
||||
if Result[0][2] == '"':
|
||||
LocalSearchPath = os.path.dirname(IncludeFile)
|
||||
CurrentIndent = Indent + Result[0][0]
|
||||
IncludedFile = Result[0][1]
|
||||
NewFileContent.extend(DoInclude(IncludedFile, CurrentIndent, IncludePathList))
|
||||
NewFileContent.extend(DoInclude(IncludedFile, CurrentIndent, IncludePathList, LocalSearchPath))
|
||||
NewFileContent.append("\n")
|
||||
|
||||
gIncludedAslFile.pop()
|
||||
|
@ -503,6 +503,13 @@ class InfParser(MetaFileParser):
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "No token space GUID or PCD name specified",
|
||||
ExtraData=self._CurrentLine + " (<TokenSpaceGuidCName>.<PcdCName>)",
|
||||
File=self.MetaFile, Line=self._LineIndex+1)
|
||||
# if value are 'True', 'true', 'TRUE' or 'False', 'false', 'FALSE', replace with integer 1 or 0.
|
||||
if self._ValueList[2] != '':
|
||||
InfPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1)
|
||||
if InfPcdValueList[0] in ['True', 'true', 'TRUE']:
|
||||
self._ValueList[2] = TokenList[1].replace(InfPcdValueList[0], '1', 1);
|
||||
elif InfPcdValueList[0] in ['False', 'false', 'FALSE']:
|
||||
self._ValueList[2] = TokenList[1].replace(InfPcdValueList[0], '0', 1);
|
||||
|
||||
## [depex] section parser
|
||||
def _DepexParser(self):
|
||||
@ -929,7 +936,13 @@ class DscParser(MetaFileParser):
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "No PCD value given",
|
||||
ExtraData=self._CurrentLine + " (<TokenSpaceGuidCName>.<TokenCName>|<PcdValue>)",
|
||||
File=self.MetaFile, Line=self._LineIndex+1)
|
||||
|
||||
# if value are 'True', 'true', 'TRUE' or 'False', 'false', 'FALSE', replace with integer 1 or 0.
|
||||
DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1)
|
||||
if DscPcdValueList[0] in ['True', 'true', 'TRUE']:
|
||||
self._ValueList[2] = TokenList[1].replace(DscPcdValueList[0], '1', 1);
|
||||
elif DscPcdValueList[0] in ['False', 'false', 'FALSE']:
|
||||
self._ValueList[2] = TokenList[1].replace(DscPcdValueList[0], '0', 1);
|
||||
|
||||
## [components] section parser
|
||||
def _ComponentParser(self):
|
||||
if self._CurrentLine[-1] == '{':
|
||||
@ -1226,6 +1239,10 @@ class DecParser(MetaFileParser):
|
||||
if not IsValid:
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, Cause, ExtraData=self._CurrentLine,
|
||||
File=self.MetaFile, Line=self._LineIndex+1)
|
||||
if ValueList[0] in ['True', 'true', 'TRUE']:
|
||||
ValueList[0] = '1'
|
||||
elif ValueList[0] in ['False', 'false', 'FALSE']:
|
||||
ValueList[0] = '0'
|
||||
|
||||
self._ValueList[2] = ValueList[0].strip() + '|' + ValueList[1].strip() + '|' + ValueList[2].strip()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user