1. Add a recovery mode for UPT failure 2. Add UNI file support 3. Add binary file header support 4. Add support for PCD error message 5. Add support for replace 6. Format generated INF/DEC files 7. Update dependency check 8. Other minor fixes Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hess Chen <hesheng.chen@intel.com> Reviewed-by: Gao, Liming <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15896 6f19259b-4bc3-4df7-8a09-765794883524
93 lines
3.2 KiB
Python
93 lines
3.2 KiB
Python
## @file
|
|
# This file is used to define class objects of INF file [BuildOptions] section.
|
|
# It will consumed by InfParser.
|
|
#
|
|
# Copyright (c) 2011 - 2014, 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.
|
|
|
|
'''
|
|
InfBuildOptionObject
|
|
'''
|
|
|
|
from Library import GlobalData
|
|
|
|
from Object.Parser.InfCommonObject import InfSectionCommonDef
|
|
|
|
class InfBuildOptionItem():
|
|
def __init__(self):
|
|
self.Content = ''
|
|
self.SupArchList = []
|
|
self.AsBuildList = []
|
|
|
|
def SetContent(self, Content):
|
|
self.Content = Content
|
|
def GetContent(self):
|
|
return self.Content
|
|
|
|
def SetSupArchList(self, SupArchList):
|
|
self.SupArchList = SupArchList
|
|
def GetSupArchList(self):
|
|
return self.SupArchList
|
|
|
|
#
|
|
# AsBuild Information
|
|
#
|
|
def SetAsBuildList(self, AsBuildList):
|
|
self.AsBuildList = AsBuildList
|
|
def GetAsBuildList(self):
|
|
return self.AsBuildList
|
|
|
|
|
|
## INF BuildOption section
|
|
# Macro define is not permitted for this section.
|
|
#
|
|
#
|
|
class InfBuildOptionsObject(InfSectionCommonDef):
|
|
def __init__(self):
|
|
self.BuildOptions = []
|
|
InfSectionCommonDef.__init__(self)
|
|
## SetBuildOptions function
|
|
#
|
|
# For BuildOptionName, need to validate it's format
|
|
# For BuildOptionValue, just ignore it.
|
|
#
|
|
# @param Arch Indicated which arch of build options belong to.
|
|
# @param BuildOptCont A list contain BuildOption related information.
|
|
# The element in the list contain 3 members.
|
|
# BuildOptionName, BuildOptionValue and IsReplace
|
|
# flag.
|
|
#
|
|
# @return True Build options set/validate successfully
|
|
# @return False Build options set/validate failed
|
|
#
|
|
def SetBuildOptions(self, BuildOptCont, ArchList = None, SectionContent = ''):
|
|
|
|
if not GlobalData.gIS_BINARY_INF:
|
|
|
|
if SectionContent.strip() != '':
|
|
InfBuildOptionItemObj = InfBuildOptionItem()
|
|
InfBuildOptionItemObj.SetContent(SectionContent)
|
|
InfBuildOptionItemObj.SetSupArchList(ArchList)
|
|
|
|
self.BuildOptions.append(InfBuildOptionItemObj)
|
|
else:
|
|
#
|
|
# For AsBuild INF file
|
|
#
|
|
if len(BuildOptCont) >= 1:
|
|
InfBuildOptionItemObj = InfBuildOptionItem()
|
|
InfBuildOptionItemObj.SetAsBuildList(BuildOptCont)
|
|
InfBuildOptionItemObj.SetSupArchList(ArchList)
|
|
self.BuildOptions.append(InfBuildOptionItemObj)
|
|
|
|
return True
|
|
|
|
def GetBuildOptions(self):
|
|
return self.BuildOptions |