summaryrefslogtreecommitdiff
path: root/Tools/Python/buildgen/FrameworkElement.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Python/buildgen/FrameworkElement.py')
-rw-r--r--Tools/Python/buildgen/FrameworkElement.py523
1 files changed, 0 insertions, 523 deletions
diff --git a/Tools/Python/buildgen/FrameworkElement.py b/Tools/Python/buildgen/FrameworkElement.py
deleted file mode 100644
index 3be8eaae57..0000000000
--- a/Tools/Python/buildgen/FrameworkElement.py
+++ /dev/null
@@ -1,523 +0,0 @@
-#!/usr/bin/env python
-
-# 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.
-
-"""Framework Element Classes
-
-TODO
-"""
-
-################################################################################
-##
-## Element class: base class for representing framework elements
-##
-################################################################################
-class Element:
- def __init__(self, **kwargs):
- """(Name, GuidValue, Version, Path, Dir, Archs, Usage, Features, Signature)"""
- ## The path and directory where the information of the element comes from
- self.Path = "."
- self.Dir = "."
-
- ## Element name, guid and version
- self.Name = ""
- self.GuidValue = ""
- self.Version = ""
-
- ## The element supported architecture
- self.Archs = []
-
- ## Indiciate how the element is used
- self.Usage = "ALWAYS_CONSUMED"
-
- ## Indicate what kind of features this element is bound
- self.Features = []
-
- ## Element signature, used to check the its integerity
- self.Signature = 0
-
- def __str__(self):
- return self.Name + "-" + self.Version + " " + " [" + self.GuidValue + "]"
-
- def __eq__(self, other):
- if not isinstance(other, Element):
- return False
-
- if self.GuidValue != other.GuidValue:
- return False
-
- if self.Version != other.Version:
- return False
-
- return True
-
- def __hash__(self):
- return hash(self.GuidValue + self.Version)
-
-################################################################################
-##
-## ToolOption: build tool option
-##
-################################################################################
-class ToolOption(Element):
-
- def __init__(self, **kwargs):
- """Prefix, Value, Tool, Toolchains, Families, Targets"""
- Element.__init__(self)
-
- self.Prefix = "/"
- self.Value = ""
- self.Tool = ""
- self.Toolchains = ""
- self.Families = "MSFT"
- self.Targets = "DEBUG"
-
-################################################################################
-##
-## BuildTool: build tool
-##
-################################################################################
-class BuildTool(Element):
- def __init__(self, **kwargs):
- """Options, Toolchains, Families, Targets"""
- Element.__init__(self)
-
- self.Options = []
- self.Toolchains = []
- self.Families = []
- self.Targets = []
-
-################################################################################
-##
-## SourceFile: files in a module for build
-##
-################################################################################
-class SourceFile(Element):
- def __init__(self, **kwargs):
- """BaseName, Ext, Type, Toolchains, Families, Targets"""
- Element.__init__(self)
-
- self.BaseName = ""
- self.Ext = ""
- self.Type = ""
- self.Toolchains = []
- self.Families = []
- self.Targets = []
-
-################################################################################
-##
-## IncludeFile: header file
-##
-################################################################################
-class IncludeFile(SourceFile):
- def __init__(self, **kwargs):
- """Type, Package, ModuleType"""
- SourceFile.__init__(self)
-
- self.Type = "HeaderFile"
- self.Package = ""
- self.ModuleType = ""
-
-################################################################################
-##
-## IncludePath:
-##
-################################################################################
-class IncludePath(IncludeFile):
- pass
-
-################################################################################
-##
-## LibraryInterface: library class interface
-##
-################################################################################
-class LibraryInterface(Element):
- def __init__(self, **kwargs):
- """Package, FavoriteInstance, Instances, ModuleTypes, Consumers"""
- Element.__init__(self)
-
- self.Package = ""
- self.FavoriteInstance = ""
- self.Instances = []
- self.ModuleTypes = []
- self.Consumers = []
-
- def __eq__(self, other):
- if not isinstance(other, LibraryInterface):
- return False
- return self.Name == other.Name
-
- def __hash__(self):
- return hash(self.Name)
-
-################################################################################
-##
-## LibraryClass: library class
-##
-################################################################################
-class LibraryClass(Element):
- def __init__(self, **kwargs):
- """
- ()
- """
- Element.__init__(self)
-
- self.Interface = ""
- self.FavoriteInstance = ""
-
- def __eq__(self, other):
- if not isinstance(other, LibraryClass):
- return False
- return self.Name == other.Name
-
- def __hash__(self):
- return hash(self.Name)
-
-################################################################################
-##
-## Guid:
-##
-################################################################################
-class Guid(Element):
- def __init__(self, **kwargs):
- """CName, Types, ModuleTypes"""
- Element.__init__(self)
-
- self.CName = ""
- self.Types = []
- self.ModuleTypes= []
-
-################################################################################
-##
-## Protocol:
-##
-################################################################################
-class Protocol(Guid):
- pass
-
-################################################################################
-##
-## ProtocolNotify:
-##
-################################################################################
-class ProtocolNotify(Protocol):
- pass
-
-################################################################################
-##
-## Ppi:
-##
-################################################################################
-class Ppi(Guid):
- pass
-
-################################################################################
-##
-## PpiNotify:
-##
-################################################################################
-class PpiNotify(Ppi):
- pass
-
-################################################################################
-##
-## Extern:
-##
-################################################################################
-class Extern(Element):
- def __init__(self, **kwargs):
- """Specifications, ModuleEntryPoints, ModuleUnloadImages, Constructors, Destructors, DriverBindings, ComponentNames, DriverConfigs, DriverDiags, SetVirtualAddressMapCallBacks, ExitBootServicesCallBacks"""
- Element.__init__(self)
-
- self.Specifications = []
- self.ModuleEntryPoints = []
- self.ModuleUnloadImages = []
- self.Constructors = []
- self.Destructors = []
- self.DriverBindings = []
- self.ComponentNames = []
- self.DriverConfigs = []
- self.DriverDiags = []
- self.SetVirtualAddressMapCallBacks = []
- self.ExitBootServicesCallBacks = []
-
-################################################################################
-##
-## Sku:
-##
-################################################################################
-class Sku(Element):
- def __init__(self, **kwargs):
- """Id, Value"""
- Element.__init__(self)
-
- self.Id = 0
- self.Value = ""
-
-################################################################################
-##
-## Pcd:
-##
-################################################################################
-class Pcd(Element):
- def __init__(self, **kwargs):
- """Types, CName, Value, Token, TokenSpace, DatumType, Sku, ModuleTypes"""
- Element.__init__(self)
-
- self.Types = []
- self.CName = ""
- self.Value = ""
- self.Token = ""
- self.TokenSpace = ""
- self.DatumType = ""
- self.Default = ""
- self.Sku = ""
- self.ModuleTypes= []
-
-################################################################################
-##
-## Module: framework module
-##
-################################################################################
-class Module(Element):
- def __init__(self, **kwargs):
- """Workspace, Package, Type, BaseName, FileBaseName, IsLibrary, PcdIsDriver,
- NeedsFlashMap_h, SourceFiles, IncludePaths, IncludeFiles, NonProcessedFiles,
- LibraryClasses, Guids, Protocols, Ppis, Externs, Pcds,
- UserExtensions, BuildOptions, Environment
- """
- Element.__init__(self)
-
- self.Workspace = ""
- self.Package = ""
- self.Type = ""
- self.BaseName = ""
- self.FileBaseName = ""
- self.IsLibrary = False
- self.IsBinary = False
- self.PcdIsDriver = False
- self.NeedsFlashMap_h = False
- self.SourceFiles = {} # arch -> {file type -> [source file list]}
- self.IncludePaths = {} # arch -> [path list]
- self.IncludeFiles = {}
-
- self.NonProcessedFiles = []
- self.LibraryClasses = {} # arch -> [library class list]
-
- self.Guids = {} # arch -> [guid object list]
- self.Protocols = {} # arch -> []
- self.Ppis = {} # arch -> []
-
- self.Externs = {} # arch -> []
- self.Pcds = {} # arch -> []
-
- self.UserExtensions = {} # identifier -> ...
- self.BuildOptions = {} # (toolchain, target, arch, toolcode, "FLAGS") -> flag
- self.Environment = {}
-
- def __eq__(self, other):
- if not isinstance(other, Module):
- return False
-
- if self.GuidValue != other.GuidValue:
- return False
-
- if self.Version != other.Version:
- return False
-
- if self.Package != other.Package:
- return False
-
- return True
-
- def __hash__(self):
- return hash(self.GuidValue + self.Version + hash(self.Package))
-
-################################################################################
-##
-## PlatformModule: module for build
-##
-################################################################################
-class PlatformModule(Element):
- def __init__(self, **kwargs):
- """Workspace, Platform, Module, Libraries, Pcds, FfsLayouts, FvBindings
- BuildOptions, BuildType, BuildFile, BuildPath, Sections, FfsFile, Environment
- """
- Element.__init__(self)
- self.Workspace = ""
- self.Platform = ""
- self.Module = ""
- self.Libraries = []
- self.Pcds = []
- self.FfsLayouts = []
- self.FvBindings = []
- self.BuildOptions = {}
-
- self.BuildType = "efi" ## efi or lib
- self.BuildFile = "build.xml"
- self.BuildPath = "${MODULE_BUILD_DIR}"
- self.Sections = []
- self.FfsFile = ""
-
- self.Environment = {} # name/value pairs
-
- def __eq__(self, other):
- if not isinstance(other, PlatformModule):
- if not isinstance(other, Module):
- return False
- elif self.Module != other:
- return False
- elif self.Module != other.Module:
- return False
-
- return True
-
- def __hash__(self):
- return hash(self.Module)
-
-################################################################################
-##
-## Package: framework package
-##
-################################################################################
-class Package(Element):
- def __init__(self, **kwargs):
- """Workspace, ReadOnly, Repackage, Modules, PackageIncludes, StandardIncludes,
- LibraryInterfaces, Guids, Protocols, Ppis, Pcds, Environment
- """
- Element.__init__(self)
-
- self.Workspace = ""
- self.ReadOnly = True
- self.Repackage = True
- self.Modules = []
- self.PackageIncludes = {} # module type -> [include file list]
- self.StandardIncludes = []
- self.LibraryInterfaces = {} # class name -> include file
- self.Guids = {} # cname -> guid object
- self.Protocols = {} # cname -> protocol object
- self.Ppis = {} # cname -> ppi object
- self.Pcds = {} # token -> pcd object
-
- self.Environment = {}
-
-################################################################################
-##
-## PackageDependency:
-##
-################################################################################
-class PackageDependency(Element):
- def __init__(self, **kwargs):
- """Package"""
- Element.__init__(self)
-
- self.Package = ""
-
-################################################################################
-##
-## Platform:
-##
-################################################################################
-class Platform(Element):
- def __init__(self, **kwargs):
- """Targets, OutputPath, Images, Modules, DynamicPcds, Fvs, Libraries
- BuildFile, BuildPath, BuildOptions, UserExtensions
- """
- Element.__init__(self)
-
- self.Targets = []
- self.OutputPath = ""
- self.Images = []
- self.Modules = {} # arch -> [module list]
- self.DynamicPcds = []
- self.FfsLayouts = {}
- self.Fvs = {}
-
- self.Libraries = {} # arch -> [library instance]
- self.BuildFile = "build.xml"
- self.BuildPath = "${PLATFORM_BUILD_DIR}"
- self.BuildOptions = {}
- self.UserExtensions = {}
-
- self.Environment = {} # name/value pairs
-
-################################################################################
-##
-## Workspace:
-##
-################################################################################
-class Workspace(Element):
- def __init__(self, **kwargs):
- """Packages, Platforms, Fars, Modules, PlatformIndex, PackageIndex"""
- Element.__init__(self)
-
- self.Packages = []
- self.Platforms = []
- self.Fars = []
- self.Modules = []
-
- ## "GUID" : {guid : {version : platform}}
- ## "PATH" : {path : platform}
- ## "NAME" : {name : [platform]}
- self.PlatformXref = {
- "GUID" : {},
- "PATH" : {},
- "NAME" : {},
- }
- ## "GUID" : {guid : {version : package}}
- ## "PATH" : {path : package}
- ## "NAME" : {name : package}
- self.PackageXref = {
- "GUID" : {},
- "PATH" : {},
- "NAME" : {},
- }
- ## "GUID" : {guid : {version : [module]}}
- ## "PATH" : {path : module}
- ## "NAME" : {name : module}
- self.ModuleXref = {
- "GUID" : {},
- "PATH" : {},
- "NAME" : {},
- }
- ## "NAME" : {name : [library interface]}
- ## "PATH" : {path : library interface}
- self.LibraryInterfaceXref = {
- "PATH" : {},
- "NAME" : {},
- }
- ## TODO
- self.FarIndex = {}
-
- # from target.txt
- self.TargetConfig = {}
- # from tools_def.txt
- self.ToolConfig = {}
-
- self.ActivePlatform = ""
- self.ActiveToolchain = ""
- self.ActiveFamilies = []
- self.ActiveModules = []
- self.ActiveTargets = []
- self.ActiveArchs = []
-
- self.IndividualModuleBuild = False
- self.MultiThreadBuild = False
- self.ThreadCount = "2"
-
- self.Environment = {}
-
-################################################################################
-##
-## For test:
-##
-################################################################################
-if __name__ == "__main__":
- pass