diff options
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py')
-rwxr-xr-x | src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py new file mode 100755 index 00000000..1638e533 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py @@ -0,0 +1,87 @@ +## @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.<BR> +# +# 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 |