InfPackagesObject.py revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
## @file
# This file is used to define class objects of INF file [Packages] section.
# It will consumed by InfParser.
#
# 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
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
'''
InfPackageObject
'''
from Library import GlobalData
class InfPackageItem():
PackageName = '',
FeatureFlagExp = '',
HelpString = ''):
self.SupArchList = []
def GetPackageName(self):
return self.PackageName
def GetFeatureFlagExp(self):
return self.FeatureFlagExp
def GetHelpString(self):
return self.HelpString
def GetSupArchList(self):
return self.SupArchList
## INF package section
#
#
#
class InfPackageObject():
#
# Macro defined in this section should be only used in this section.
#
SupArchList = []
#
# Validate Arch
#
ArchItem = 'COMMON'
for PackageItem in PackageData:
if HelpStringObj != None:
#
#
else:
return False
if IsValidFileFlag:
#
# Validate Feature Flag Express
#
#
# Validate FFE
#
if not FeatureFlagRtv[0]:
#
# Invalid format of Package statement
#
#
# Determine package file name duplicate. Follow below rule:
#
# A package filename must not be duplicated within a [Packages]
# section. Package filenames may appear in multiple architectural
# [Packages] sections. A package filename listed in an
# architectural [Packages] section must not be listed in the common
# architectural [Packages] section.
#
# NOTE: This check will not report error now.
#
for ItemArch in ItemSupArchList:
for PackageItemObjArch in SupArchList:
if ItemArch == PackageItemObjArch:
#
# ST.ERR_INF_PARSER_ITEM_DUPLICATE
#
pass
#
# ST.ERR_INF_PARSER_ITEM_DUPLICATE_COMMON
#
pass
else:
PackageList = []
return True
if Arch == None: