summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/AutoGen/IdfClassObject.py
diff options
context:
space:
mode:
authorCarsey, Jaben <jaben.carsey@intel.com>2018-04-28 06:32:43 +0800
committerYonghong Zhu <yonghong.zhu@intel.com>2018-05-04 13:03:10 +0800
commitcb7e6aa77a937f2c28dc57bcffccde69c4080ffb (patch)
tree2c6b8f7cf8c5880cc6a50c4677e1eafdfaa9b913 /BaseTools/Source/Python/AutoGen/IdfClassObject.py
parent1549328f5f48c657137c3ead96f2ad3586713a33 (diff)
downloadedk2-cb7e6aa77a937f2c28dc57bcffccde69c4080ffb.tar.gz
edk2-cb7e6aa77a937f2c28dc57bcffccde69c4080ffb.tar.bz2
edk2-cb7e6aa77a937f2c28dc57bcffccde69c4080ffb.zip
BaseTools: AutoGen - refactor more functions only called in __init__
Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/AutoGen/IdfClassObject.py')
-rw-r--r--BaseTools/Source/Python/AutoGen/IdfClassObject.py89
1 files changed, 40 insertions, 49 deletions
diff --git a/BaseTools/Source/Python/AutoGen/IdfClassObject.py b/BaseTools/Source/Python/AutoGen/IdfClassObject.py
index 82396d3744..7bc4e4ffb5 100644
--- a/BaseTools/Source/Python/AutoGen/IdfClassObject.py
+++ b/BaseTools/Source/Python/AutoGen/IdfClassObject.py
@@ -66,61 +66,52 @@ EFI_HII_PACKAGE_TYPE_SYSTEM_END = 0xFF
class IdfFileClassObject(object):
def __init__(self, FileList = []):
- self.FileList = FileList
self.ImageFilesDict = {}
self.ImageIDList = []
- if len(self.FileList) > 0:
- self.LoadIdfFiles(FileList)
+ for File in FileList:
+ if File is None:
+ EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'No Image definition file is given.')
+ self.File = File
- def LoadIdfFiles(self, FileList):
- if len(FileList) > 0:
- for File in FileList:
- self.LoadIdfFile(File)
+ try:
+ IdfFile = open(LongFilePath(File.Path), mode='r')
+ FileIn = IdfFile.read()
+ IdfFile.close()
+ except:
+ EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=File)
- def LoadIdfFile(self, File = None):
- if File is None:
- EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'No Image definition file is given.')
- self.File = File
+ ImageFileList = []
+ for Line in FileIn.splitlines():
+ Line = Line.strip()
+ Line = StripComments(Line)
+ if len(Line) == 0:
+ continue
- try:
- IdfFile = open(LongFilePath(File.Path), mode='r')
- FileIn = IdfFile.read()
- IdfFile.close()
- except:
- EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=File)
+ LineNo = GetLineNo(FileIn, Line, False)
+ if not Line.startswith('#image '):
+ EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is invalid.' % (Line, LineNo, File.Path))
- ImageFileList = []
- for Line in FileIn.splitlines():
- Line = Line.strip()
- Line = StripComments(Line)
- if len(Line) == 0:
- continue
-
- LineNo = GetLineNo(FileIn, Line, False)
- if not Line.startswith('#image '):
- EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is invalid.' % (Line, LineNo, File.Path))
-
- if Line.find('#image ') >= 0:
- LineDetails = Line.split()
- Len = len(LineDetails)
- if Len != 3 and Len != 4:
- EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The format is not match #image IMAGE_ID [TRANSPARENT] ImageFileName in Line %s of File %s.' % (LineNo, File.Path))
- if Len == 4 and LineDetails[2] != 'TRANSPARENT':
- EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'Please use the keyword "TRANSPARENT" to describe the transparency setting in Line %s of File %s.' % (LineNo, File.Path))
- MatchString = gIdentifierPattern.match(LineDetails[1])
- if MatchString is None:
- EdkLogger.error('Image Definition File Parser', FORMAT_INVALID, 'The Image token name %s defined in Idf file %s contains the invalid character.' % (LineDetails[1], File.Path))
- if LineDetails[1] not in self.ImageIDList:
- self.ImageIDList.append(LineDetails[1])
- else:
- EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is already defined.' % (LineDetails[1], LineNo, File.Path))
- if Len == 4:
- ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], True)
- else:
- ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], False)
- ImageFileList.append(ImageFile)
- if ImageFileList:
- self.ImageFilesDict[File] = ImageFileList
+ if Line.find('#image ') >= 0:
+ LineDetails = Line.split()
+ Len = len(LineDetails)
+ if Len != 3 and Len != 4:
+ EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The format is not match #image IMAGE_ID [TRANSPARENT] ImageFileName in Line %s of File %s.' % (LineNo, File.Path))
+ if Len == 4 and LineDetails[2] != 'TRANSPARENT':
+ EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'Please use the keyword "TRANSPARENT" to describe the transparency setting in Line %s of File %s.' % (LineNo, File.Path))
+ MatchString = gIdentifierPattern.match(LineDetails[1])
+ if MatchString is None:
+ EdkLogger.error('Image Definition File Parser', FORMAT_INVALID, 'The Image token name %s defined in Idf file %s contains the invalid character.' % (LineDetails[1], File.Path))
+ if LineDetails[1] not in self.ImageIDList:
+ self.ImageIDList.append(LineDetails[1])
+ else:
+ EdkLogger.error("Image Definition File Parser", PARSER_ERROR, 'The %s in Line %s of File %s is already defined.' % (LineDetails[1], LineNo, File.Path))
+ if Len == 4:
+ ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], True)
+ else:
+ ImageFile = ImageFileObject(LineDetails[Len-1], LineDetails[1], False)
+ ImageFileList.append(ImageFile)
+ if ImageFileList:
+ self.ImageFilesDict[File] = ImageFileList
def SearchImageID(ImageFileObject, FileList):
if FileList == []: