From 30fdf1140b8d1ce93f3821d986fa165552023440 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Fri, 17 Jul 2009 09:10:31 +0000 Subject: Check In tool source code based on Build tool project revision r1655. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Source/Python/CommonDataClass/PlatformClass.py | 432 +++++++++++++++++++++ 1 file changed, 432 insertions(+) create mode 100644 BaseTools/Source/Python/CommonDataClass/PlatformClass.py (limited to 'BaseTools/Source/Python/CommonDataClass/PlatformClass.py') diff --git a/BaseTools/Source/Python/CommonDataClass/PlatformClass.py b/BaseTools/Source/Python/CommonDataClass/PlatformClass.py new file mode 100644 index 0000000000..1966fb9f8c --- /dev/null +++ b/BaseTools/Source/Python/CommonDataClass/PlatformClass.py @@ -0,0 +1,432 @@ +## @file +# This file is used to define a class object to describe a platform +# +# Copyright (c) 2007, Intel Corporation +# All rights reserved. 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. + +## +# Import Modules +# +from CommonClass import * + +## SkuInfoListClass +# +# This class defined sku info list item used in platform file +# +# @param IncludeStatementClass: Inherited from IncludeStatementClass class +# +# @var SkuInfoList: To store value for SkuInfoList, it is a set structure as +# { SkuName : SkuId } +# +class SkuInfoListClass(IncludeStatementClass): + def __init__(self): + IncludeStatementClass.__init__(self) + self.SkuInfoList = {} + +## PlatformHeaderClass +# +# This class defined header items used in Platform file +# +# @param IdentificationClass: Inherited from IdentificationClass class +# @param CommonHeaderClass: Inherited from CommonHeaderClass class +# @param DefineClass: Inherited from DefineClass class +# +# @var DscSpecification: To store value for DscSpecification +# @var SupArchList: To store value for SupArchList, selection scope is in below list +# EBC | IA32 | X64 | IPF | ARM | PPC +# @var BuildTargets: To store value for BuildTargets, selection scope is in below list +# RELEASE | DEBUG +# @var IntermediateDirectories: To store value for IntermediateDirectories, selection scope is in below list +# MODULE | UNIFIED +# @var OutputDirectory: To store value for OutputDirectory +# @var ForceDebugTarget: To store value for ForceDebugTarget +# @var SkuIdName: To store value for SkuIdName +# @var BuildNumber: To store value for BuildNumber +# @var MakefileName: To store value for MakefileName +# @var ClonedFrom: To store value for ClonedFrom, it is a list structure as +# [ ClonedRecordClass, ... ] +# +class PlatformHeaderClass(IdentificationClass, CommonHeaderClass, DefineClass): + def __init__(self): + IdentificationClass.__init__(self) + CommonHeaderClass.__init__(self) + DefineClass.__init__(self) + self.DscSpecification = '' + self.SupArchList = [] + self.BuildTargets = [] + self.IntermediateDirectories = '' + self.OutputDirectory = '' + self.ForceDebugTarget = '' + self.SkuIdName = [] + self.BuildNumber = '' + self.MakefileName = '' + self.ClonedFrom = [] + +## PlatformFlashDefinitionFileClass +# +# This class defined FlashDefinitionFile item used in platform file +# +# @param object: Inherited from object class +# +# @var Id: To store value for Id +# @var UiName: To store value for UiName +# @var Preferred: To store value for Preferred +# @var FilePath: To store value for FilePath +# +class PlatformFlashDefinitionFileClass(object): + def __init__(self): + self.Id = '' + self.UiName = '' + self.Preferred = False + self.FilePath = '' + +## PlatformFvImageOptionClass +# +# This class defined FvImageOption item used in platform file +# +# @param object: Inherited from object class +# +# @var FvImageOptionName: To store value for FvImageOptionName +# @var FvImageOptionValues: To store value for FvImageOptionValues +# +class PlatformFvImageOptionClass(object): + def __init__(self): + self.FvImageOptionName = '' + self.FvImageOptionValues = [] + +## PlatformFvImageClass +# +# This class defined FvImage item used in platform file +# +# @param object: Inherited from object class +# +# @var Name: To store value for Name +# @var Value: To store value for Value +# @var Type: To store value for Type, selection scope is in below list +# Attributes | Options | Components | ImageName +# @var FvImageNames: To store value for FvImageNames +# @var FvImageOptions: To store value for FvImageOptions, it is a list structure as +# [ PlatformFvImageOption, ...] +# +class PlatformFvImageClass(object): + def __init__(self): + self.Name = '' + self.Value = '' + self.Type = '' + self.FvImageNames = [] + self.FvImageOptions = [] + +## PlatformFvImageNameClass +# +# This class defined FvImageName item used in platform file +# +# @param object: Inherited from object class +# +# @var Name: To store value for Name +# @var Type: To store value for Type, selection scope is in below list +# FV_MAIN | FV_MAIN_COMPACT | NV_STORAGE | FV_RECOVERY | FV_RECOVERY_FLOPPY | FV_FILE | CAPSULE_CARGO | NULL | USER_DEFINED +# @var FvImageOptions: To store value for FvImageOptions, it is a list structure as +# [ PlatformFvImageOption, ...] +# +class PlatformFvImageNameClass(object): + def __init__(self): + self.Name = '' + self.Type = '' + self.FvImageOptions = [] + +## PlatformFvImagesClass +# +# This class defined FvImages item used in platform file +# +# @param object: Inherited from object class +# +# @var FvImages: To store value for FvImages +# +class PlatformFvImagesClass(object): + def __init__(self): + self.FvImages = [] + +## PlatformAntTaskClass +# +# This class defined AntTask item used in platform file +# +# @param object: Inherited from object class +# +# @var Id: To store value for Id +# @var AntCmdOptions: To store value for AntCmdOptions +# @var FilePath: To store value for FilePath +# +class PlatformAntTaskClass(object): + def __init__(self): + self.Id = '' + self.AntCmdOptions = '' + self.FilePath = '' + +## PlatformFfsSectionClass +# +# This class defined FfsSection item used in platform file +# +# @param CommonClass: Inherited from CommonClass class +# +# @var BindingOrder: To store value for BindingOrder +# @var Compressible: To store value for Compressible +# @var SectionType: To store value for SectionType +# @var EncapsulationType: To store value for EncapsulationType +# @var ToolName: To store value for ToolName +# @var Filenames: To store value for Filenames +# @var Args: To store value for Args +# @var OutFile: To store value for OutFile +# @var OutputFileExtension: To store value for OutputFileExtension +# @var ToolNameElement: To store value for ToolNameElement +# +class PlatformFfsSectionClass(CommonClass): + def __init__(self): + CommonClass.__init__(self) + self.BindingOrder = '' + self.Compressible = '' + self.SectionType = '' + self.EncapsulationType = '' + self.ToolName = '' + self.Filenames = [] + self.Args = '' + self.OutFile = '' + self.OutputFileExtension = '' + self.ToolNameElement = '' + +## PlatformFfsSectionsClass +# +# This class defined FfsSections item used in platform file +# +# @param CommonClass: Inherited from CommonClass class +# +# @var BindingOrder: To store value for BindingOrder +# @var Compressible: To store value for Compressible +# @var SectionType: To store value for SectionType +# @var EncapsulationType: To store value for EncapsulationType +# @var ToolName: To store value for ToolName +# @var Section: To store value for Section, it is a list structure as +# [ PlatformFfsSectionClass, ... ] +# @var Sections: To store value for Sections, it is a list structure as +# [ PlatformFfsSectionsClass, ...] +# +class PlatformFfsSectionsClass(CommonClass): + def __init__(self): + CommonClass.__init__(self) + self.BindingOrder = '' + self.Compressible = '' + self.SectionType = '' + self.EncapsulationType = '' + self.ToolName = '' + self.Section = [] + self.Sections = [] + +## PlatformFfsClass +# +# This class defined Ffs item used in platform file +# +# @param object: Inherited from object class +# +# @var Attribute: To store value for Attribute, it is a set structure as +# { [(Name, PlatformFfsSectionsClass)] : Value} +# @var Sections: To store value for Sections, it is a list structure as +# [ PlatformFfsSectionsClass] +# @var ToolName: To store value for ToolName +# +class PlatformFfsClass(object): + def __init__(self): + self.Attribute = {} + self.Sections = [] + self.Key = '' + +## PlatformBuildOptionClass +# +# This class defined BuildOption item used in platform file +# +# @param object: Inherited from object class +# +# @var UserDefinedAntTasks: To store value for UserDefinedAntTasks, it is a set structure as +# { [Id] : PlatformAntTaskClass, ...} +# @var Options: To store value for Options, it is a list structure as +# [ BuildOptionClass, ...] +# @var UserExtensions: To store value for UserExtensions, it is a set structure as +# { [(UserID, Identifier)] : UserExtensionsClass, ...} +# @var FfsKeyList: To store value for FfsKeyList, it is a set structure as +# { [FfsKey]: PlatformFfsClass, ...} +# +class PlatformBuildOptionClass(object): + def __init__(self): + self.UserDefinedAntTasks = {} + self.Options = [] + self.UserExtensions = {} + self.FfsKeyList = {} + +## PlatformBuildOptionClasses +# +# This class defined BuildOption item list used in platform file +# +# @param IncludeStatementClass: Inherited from IncludeStatementClass class +# +# @var FvBinding: To store value for FvBinding +# @var FfsFileNameGuid: To store value for FfsFileNameGuid +# @var FfsFormatKey: To store value for FfsFormatKey +# @var BuildOptionList: To store value for BuildOptionList, it is a list structure as +# [ BuildOptionClass, ... ] +# +class PlatformBuildOptionClasses(IncludeStatementClass): + def __init__(self): + IncludeStatementClass.__init__(self) + self.FvBinding = '' + self.FfsFileNameGuid = '' + self.FfsFormatKey = '' + self.BuildOptionList = [] + +## PlatformLibraryClass +# +# This class defined Library item used in platform file +# +# @param CommonClass: Inherited from CommonClass class +# @param DefineClass: Inherited from DefineClass class +# @param Name: Input value for Name, default is '' +# @param FilePath: Input value for FilePath, default is '' +# +# @var Name: To store value for Name +# @var FilePath: To store value for FilePath +# @var ModuleType: To store value for ModuleType +# @var SupModuleList: To store value for SupModuleList +# @var ModuleGuid: To store value for ModuleGuid +# @var ModuleVersion: To store value for ModuleVersion +# @var PackageGuid: To store value for PackageGuid +# @var PackageVersion: To store value for PackageVersion +# +class PlatformLibraryClass(CommonClass, DefineClass): + def __init__(self, Name = '', FilePath = ''): + CommonClass.__init__(self) + DefineClass.__init__(self) + self.Name = Name + self.FilePath = FilePath + self.ModuleType = [] + self.SupModuleList = [] + self.ModuleGuid = '' + self.ModuleVersion = '' + self.PackageGuid = '' + self.PackageVersion = '' + +## PlatformLibraryClasses +# +# This class defined Library item list used in platform file +# +# @param IncludeStatementClass: Inherited from IncludeStatementClass class +# +# @var LibraryList: To store value for LibraryList, it is a list structure as +# [ PlatformLibraryClass, ... ] +# +class PlatformLibraryClasses(IncludeStatementClass): + def __init__(self): + IncludeStatementClass.__init__(self) + self.LibraryList = [] + +## PlatformModuleClass +# +# This class defined Module item used in platform file +# +# @param CommonClass: Inherited from CommonClass class +# @param DefineClass: Inherited from DefineClass class +# @param IncludeStatementClass: Inherited from IncludeStatementClass class +# +# @var Name: To store value for Name (Library name or libraryclass name or module name) +# @var FilePath: To store value for FilePath +# @var Type: To store value for Type, selection scope is in below list +# LIBRARY | LIBRARY_CLASS | MODULE +# @var ModuleType: To store value for ModuleType +# @var ExecFilePath: To store value for ExecFilePath +# @var LibraryClasses: To store value for LibraryClasses, it is a structure as +# PlatformLibraryClasses +# @var PcdBuildDefinitions: To store value for PcdBuildDefinitions, it is a list structure as +# [ PcdClass, ...] +# @var ModuleSaBuildOption: To store value for ModuleSaBuildOption, it is a structure as +# PlatformBuildOptionClasses +# @var Specifications: To store value for Specifications, it is a list structure as +# [ '', '', ...] +# +class PlatformModuleClass(CommonClass, DefineClass, IncludeStatementClass): + def __init__(self): + CommonClass.__init__(self) + DefineClass.__init__(self) + self.Name = '' + self.FilePath = '' + self.Type = '' + self.ModuleType = '' + self.ExecFilePath = '' + self.LibraryClasses = PlatformLibraryClasses() + self.PcdBuildDefinitions = [] + self.ModuleSaBuildOption = PlatformBuildOptionClasses() + self.Specifications = [] + self.SourceOverridePath = '' + +## PlatformModuleClasses +# +# This class defined Module item list used in platform file +# +# @param IncludeStatementClass: Inherited from IncludeStatementClass class +# +# @var ModuleList: To store value for ModuleList, it is a list structure as +# [ PlatformModuleClass, ... ] +# +class PlatformModuleClasses(IncludeStatementClass): + def __init__(self): + IncludeStatementClass.__init__(self) + self.ModuleList = [] + +## PlatformClass +# +# This class defined a complete platform item +# +# @param object: Inherited from object class +# +# @var Header: To store value for Header, it is a structure as +# {Arch : PlatformHeaderClass()} +# @var SkuInfos: To store value for SkuInfos, it is a structure as +# SkuInfoListClass +# @var Libraries: To store value for Libraries, it is a structure as +# PlatformLibraryClasses +# @var LibraryClasses: To store value for LibraryClasses, it is a structure as +# PlatformLibraryClasses +# @var Modules: To store value for Modules, it is a structure as +# PlatformModuleClasses +# @var FlashDefinitionFile: To store value for FlashDefinitionFile, it is a structure as +# PlatformFlashDefinitionFileClass +# @var BuildOptions: To store value for BuildOptions, it is a structure as +# PlatformBuildOptionClasses +# @var DynamicPcdBuildDefinitions: To store value for DynamicPcdBuildDefinitions, it is a list structure as +# [ PcdClass, ...] +# @var Fdf: To store value for Fdf, it is a list structure as +# [ FdfClass, ...] +# @var UserExtensions: To store value for UserExtensions, it is a list structure as +# [ UserExtensionsClass, ...] +# +class PlatformClass(object): + def __init__(self): + self.Header = {} + self.SkuInfos = SkuInfoListClass() + self.Libraries = PlatformLibraryClasses() + self.LibraryClasses = PlatformLibraryClasses() + self.Modules = PlatformModuleClasses() + self.FlashDefinitionFile = PlatformFlashDefinitionFileClass() + self.BuildOptions = PlatformBuildOptionClasses() + self.DynamicPcdBuildDefinitions = [] + self.Fdf = [] + self.UserExtensions = [] + +## +# +# This acts like the main() function for the script, unless it is 'import'ed into another +# script. +# +if __name__ == '__main__': + P = PlatformClass() -- cgit v1.2.3