## @file # This file is used to define class objects of INF file [BuildOptions] section. # It will consumed by InfParser. # # Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent ''' 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 its 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