summaryrefslogtreecommitdiff
path: root/BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py')
-rw-r--r--BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py218
1 files changed, 0 insertions, 218 deletions
diff --git a/BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py b/BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py
deleted file mode 100644
index 941641a845..0000000000
--- a/BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py
+++ /dev/null
@@ -1,218 +0,0 @@
-## @file
-# This file contained the parser for BuildOption sections in INF file
-#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials are licensed and made available
-# under the terms and conditions of the BSD License which accompanies this
-# distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-'''
-InfBuildOptionSectionParser
-'''
-##
-# Import Modules
-#
-from Library import DataType as DT
-from Library import GlobalData
-import Logger.Log as Logger
-from Logger import StringTable as ST
-from Logger.ToolError import FORMAT_INVALID
-from Parser.InfParserMisc import InfExpandMacro
-from Library.Misc import GetSplitValueList
-from Parser.InfParserMisc import IsAsBuildOptionInfo
-from Library.Misc import GetHelpStringByRemoveHashKey
-from Library.ParserValidate import IsValidFamily
-from Library.ParserValidate import IsValidBuildOptionName
-from Parser.InfParserMisc import InfParserSectionRoot
-
-class InfBuildOptionSectionParser(InfParserSectionRoot):
- ## InfBuildOptionParser
- #
- #
- def InfBuildOptionParser(self, SectionString, InfSectionObject, FileName):
-
- BuildOptionList = []
- SectionContent = ''
-
- if not GlobalData.gIS_BINARY_INF:
- ValueList = []
- LineNo = 0
-
- for Line in SectionString:
- LineContent = Line[0]
- LineNo = Line[1]
- TailComments = ''
- ReplaceFlag = False
-
- if LineContent.strip() == '':
- SectionContent += LineContent + DT.END_OF_LINE
- continue
- #
- # Found Comment
- #
- if LineContent.strip().startswith(DT.TAB_COMMENT_SPLIT):
- SectionContent += LineContent + DT.END_OF_LINE
- continue
-
- #
- # Find Tail comment.
- #
- if LineContent.find(DT.TAB_COMMENT_SPLIT) > -1:
- TailComments = LineContent[LineContent.find(DT.TAB_COMMENT_SPLIT):]
- LineContent = LineContent[:LineContent.find(DT.TAB_COMMENT_SPLIT)]
-
- TokenList = GetSplitValueList(LineContent, DT.TAB_DEQUAL_SPLIT, 1)
- if len(TokenList) == 2:
- #
- # "Replace" type build option
- #
- TokenList.append('True')
- ReplaceFlag = True
- else:
- TokenList = GetSplitValueList(LineContent, DT.TAB_EQUAL_SPLIT, 1)
- #
- # "Append" type build option
- #
- if len(TokenList) == 2:
- TokenList.append('False')
- else:
- Logger.Error('InfParser',
- FORMAT_INVALID,
- ST.ERR_INF_PARSER_BUILD_OPTION_FORMAT_INVALID,
- ExtraData=LineContent,
- File=FileName,
- Line=LineNo)
-
- ValueList[0:len(TokenList)] = TokenList
-
- #
- # Replace with [Defines] section Macro
- #
- ValueList[0] = InfExpandMacro(ValueList[0], (FileName, LineContent, LineNo),
- self.FileLocalMacros, None)
- ValueList[1] = InfExpandMacro(ValueList[1], (FileName, LineContent, LineNo),
- self.FileLocalMacros, None, True)
- EqualString = ''
- if not ReplaceFlag:
- EqualString = ' = '
- else:
- EqualString = ' == '
-
- SectionContent += ValueList[0] + EqualString + ValueList[1] + TailComments + DT.END_OF_LINE
-
- Family = GetSplitValueList(ValueList[0], DT.TAB_COLON_SPLIT, 1)
- if len(Family) == 2:
- if not IsValidFamily(Family[0]):
- Logger.Error('InfParser',
- FORMAT_INVALID,
- ST.ERR_INF_PARSER_BUILD_OPTION_FORMAT_INVALID,
- ExtraData=LineContent,
- File=FileName,
- Line=LineNo)
- if not IsValidBuildOptionName(Family[1]):
- Logger.Error('InfParser',
- FORMAT_INVALID,
- ST.ERR_INF_PARSER_BUILD_OPTION_FORMAT_INVALID,
- ExtraData=LineContent,
- File=FileName,
- Line=LineNo)
- if len(Family) == 1:
- if not IsValidBuildOptionName(Family[0]):
- Logger.Error('InfParser',
- FORMAT_INVALID,
- ST.ERR_INF_PARSER_BUILD_OPTION_FORMAT_INVALID,
- ExtraData=LineContent,
- File=FileName,
- Line=LineNo)
-
- BuildOptionList.append(ValueList)
- ValueList = []
- continue
- else:
- BuildOptionList = InfAsBuiltBuildOptionParser(SectionString, FileName)
-
- #
- # Current section archs
- #
- ArchList = []
- LastItem = ''
- for Item in self.LastSectionHeaderContent:
- LastItem = Item
- if not (Item[1] == '' or Item[1] == '') and Item[1] not in ArchList:
- ArchList.append(Item[1])
- InfSectionObject.SetSupArchList(Item[1])
-
- InfSectionObject.SetAllContent(SectionContent)
- if not InfSectionObject.SetBuildOptions(BuildOptionList, ArchList, SectionContent):
- Logger.Error('InfParser',
- FORMAT_INVALID,
- ST.ERR_INF_PARSER_MODULE_SECTION_TYPE_ERROR%("[BuilOptions]"),
- File=FileName,
- Line=LastItem[3])
-
-## InfBuildOptionParser
-#
-#
-def InfAsBuiltBuildOptionParser(SectionString, FileName):
- BuildOptionList = []
- #
- # AsBuild Binary INF file.
- #
- AsBuildOptionFlag = False
- BuildOptionItem = []
- Count = 0
- for Line in SectionString:
- Count += 1
- LineContent = Line[0]
- LineNo = Line[1]
-
- #
- # The last line
- #
- if len(SectionString) == Count:
- if LineContent.strip().startswith("##") and AsBuildOptionFlag:
- BuildOptionList.append(BuildOptionItem)
- BuildOptionList.append([GetHelpStringByRemoveHashKey(LineContent)])
- elif LineContent.strip().startswith("#") and AsBuildOptionFlag:
- BuildOptionInfo = GetHelpStringByRemoveHashKey(LineContent)
- BuildOptionItem.append(BuildOptionInfo)
- BuildOptionList.append(BuildOptionItem)
- else:
- if len(BuildOptionItem) > 0:
- BuildOptionList.append(BuildOptionItem)
-
- break
-
- if LineContent.strip() == '':
- AsBuildOptionFlag = False
- continue
-
- if LineContent.strip().startswith("##") and AsBuildOptionFlag:
- if len(BuildOptionItem) > 0:
- BuildOptionList.append(BuildOptionItem)
-
- BuildOptionItem = []
-
- if not LineContent.strip().startswith("#"):
- Logger.Error('InfParser',
- FORMAT_INVALID,
- ST.ERR_BO_CONTATIN_ASBUILD_AND_COMMON,
- File=FileName,
- Line=LineNo,
- ExtraData=LineContent)
-
- if IsAsBuildOptionInfo(LineContent):
- AsBuildOptionFlag = True
- continue
-
- if AsBuildOptionFlag:
- BuildOptionInfo = GetHelpStringByRemoveHashKey(LineContent)
- BuildOptionItem.append(BuildOptionInfo)
-
- return BuildOptionList \ No newline at end of file