]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Python/buildgen/FrameworkElement.py
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / Python / buildgen / FrameworkElement.py
diff --git a/Tools/Python/buildgen/FrameworkElement.py b/Tools/Python/buildgen/FrameworkElement.py
deleted file mode 100644 (file)
index 3be8eaa..0000000
+++ /dev/null
@@ -1,523 +0,0 @@
-#!/usr/bin/env python\r
-\r
-# Copyright (c) 2007, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution.  The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-"""Framework Element Classes\r
-\r
-TODO\r
-"""\r
-\r
-################################################################################\r
-##\r
-## Element class: base class for representing framework elements\r
-##\r
-################################################################################\r
-class Element:\r
-    def __init__(self, **kwargs):\r
-        """(Name, GuidValue, Version, Path, Dir, Archs, Usage, Features, Signature)"""\r
-        ## The path and directory where the information of the element comes from\r
-        self.Path       = "."\r
-        self.Dir        = "."\r
-\r
-        ## Element name, guid and version\r
-        self.Name       = ""\r
-        self.GuidValue  = ""\r
-        self.Version    = ""\r
-\r
-        ## The element supported architecture\r
-        self.Archs      = []\r
-        \r
-        ## Indiciate how the element is used\r
-        self.Usage      = "ALWAYS_CONSUMED"\r
-        \r
-        ## Indicate what kind of features this element is bound\r
-        self.Features   = []\r
-        \r
-        ## Element signature, used to check the its integerity\r
-        self.Signature  = 0\r
-\r
-    def __str__(self):\r
-        return self.Name + "-" + self.Version + " " + " [" + self.GuidValue + "]"\r
-\r
-    def __eq__(self, other):\r
-        if not isinstance(other, Element):\r
-            return False\r
-        \r
-        if self.GuidValue != other.GuidValue:\r
-            return False\r
-\r
-        if self.Version != other.Version:\r
-            return False\r
-\r
-        return True\r
-\r
-    def __hash__(self):\r
-        return hash(self.GuidValue + self.Version)\r
-\r
-################################################################################\r
-##\r
-## ToolOption: build tool option\r
-## \r
-################################################################################\r
-class ToolOption(Element):\r
-    \r
-    def __init__(self, **kwargs):\r
-        """Prefix, Value, Tool, Toolchains, Families, Targets"""\r
-        Element.__init__(self)\r
-\r
-        self.Prefix     = "/"\r
-        self.Value      = ""\r
-        self.Tool       = ""\r
-        self.Toolchains = ""\r
-        self.Families   = "MSFT"\r
-        self.Targets    = "DEBUG"\r
-\r
-################################################################################\r
-##\r
-## BuildTool: build tool\r
-## \r
-################################################################################\r
-class BuildTool(Element):\r
-    def __init__(self, **kwargs):\r
-        """Options, Toolchains, Families, Targets"""\r
-        Element.__init__(self)\r
-\r
-        self.Options    = []\r
-        self.Toolchains = []\r
-        self.Families   = []\r
-        self.Targets    = []\r
-\r
-################################################################################\r
-##\r
-## SourceFile: files in a module for build\r
-## \r
-################################################################################\r
-class SourceFile(Element):\r
-    def __init__(self, **kwargs):\r
-        """BaseName, Ext, Type, Toolchains, Families, Targets"""\r
-        Element.__init__(self)\r
-\r
-        self.BaseName   = ""\r
-        self.Ext        = ""\r
-        self.Type       = ""\r
-        self.Toolchains = []\r
-        self.Families   = []\r
-        self.Targets    = []\r
-\r
-################################################################################\r
-## \r
-## IncludeFile: header file\r
-## \r
-################################################################################\r
-class IncludeFile(SourceFile):\r
-    def __init__(self, **kwargs):\r
-        """Type, Package, ModuleType"""\r
-        SourceFile.__init__(self)\r
-\r
-        self.Type       = "HeaderFile"\r
-        self.Package    = ""\r
-        self.ModuleType = ""\r
-\r
-################################################################################\r
-## \r
-## IncludePath:\r
-## \r
-################################################################################\r
-class IncludePath(IncludeFile):\r
-    pass\r
-\r
-################################################################################\r
-##\r
-## LibraryInterface: library class interface\r
-## \r
-################################################################################\r
-class LibraryInterface(Element):\r
-    def __init__(self, **kwargs):\r
-        """Package, FavoriteInstance, Instances, ModuleTypes, Consumers"""\r
-        Element.__init__(self)\r
-\r
-        self.Package            = ""\r
-        self.FavoriteInstance   = ""\r
-        self.Instances          = []\r
-        self.ModuleTypes        = []\r
-        self.Consumers          = []\r
-\r
-    def __eq__(self, other):\r
-        if not isinstance(other, LibraryInterface):\r
-            return False\r
-        return self.Name == other.Name\r
-               \r
-    def __hash__(self):\r
-        return hash(self.Name)\r
-    \r
-################################################################################\r
-##\r
-## LibraryClass: library class\r
-##\r
-################################################################################\r
-class LibraryClass(Element):\r
-    def __init__(self, **kwargs):\r
-        """\r
-        ()\r
-        """\r
-        Element.__init__(self)\r
-\r
-        self.Interface          = ""\r
-        self.FavoriteInstance   = ""\r
-\r
-    def __eq__(self, other):\r
-        if not isinstance(other, LibraryClass):\r
-            return False\r
-        return self.Name == other.Name\r
-\r
-    def __hash__(self):\r
-        return hash(self.Name)\r
-\r
-################################################################################\r
-##\r
-##  Guid:\r
-## \r
-################################################################################\r
-class Guid(Element):\r
-    def __init__(self, **kwargs):\r
-        """CName, Types, ModuleTypes"""\r
-        Element.__init__(self)\r
-\r
-        self.CName      = ""\r
-        self.Types      = []\r
-        self.ModuleTypes= []\r
-\r
-################################################################################\r
-##\r
-##  Protocol:\r
-## \r
-################################################################################\r
-class Protocol(Guid):\r
-    pass\r
-\r
-################################################################################\r
-##\r
-##  ProtocolNotify:\r
-## \r
-################################################################################\r
-class ProtocolNotify(Protocol):\r
-    pass\r
-\r
-################################################################################\r
-##\r
-##  Ppi:\r
-## \r
-################################################################################\r
-class Ppi(Guid):\r
-    pass\r
-\r
-################################################################################\r
-##\r
-##  PpiNotify:\r
-## \r
-################################################################################\r
-class PpiNotify(Ppi):\r
-    pass\r
-\r
-################################################################################\r
-##\r
-##  Extern:\r
-## \r
-################################################################################\r
-class Extern(Element):\r
-    def __init__(self, **kwargs):\r
-        """Specifications, ModuleEntryPoints, ModuleUnloadImages, Constructors, Destructors, DriverBindings, ComponentNames, DriverConfigs, DriverDiags, SetVirtualAddressMapCallBacks, ExitBootServicesCallBacks"""\r
-        Element.__init__(self)\r
-\r
-        self.Specifications                 = []\r
-        self.ModuleEntryPoints              = []\r
-        self.ModuleUnloadImages             = []\r
-        self.Constructors                   = []\r
-        self.Destructors                    = []\r
-        self.DriverBindings                 = []\r
-        self.ComponentNames                 = []\r
-        self.DriverConfigs                  = []\r
-        self.DriverDiags                    = []\r
-        self.SetVirtualAddressMapCallBacks  = []\r
-        self.ExitBootServicesCallBacks      = []\r
-\r
-################################################################################\r
-##\r
-##  Sku:\r
-## \r
-################################################################################\r
-class Sku(Element):\r
-    def __init__(self, **kwargs):\r
-        """Id, Value"""\r
-        Element.__init__(self)\r
-\r
-        self.Id     = 0\r
-        self.Value  = ""\r
-\r
-################################################################################\r
-##\r
-##  Pcd:\r
-## \r
-################################################################################\r
-class Pcd(Element):\r
-    def __init__(self, **kwargs):\r
-        """Types, CName, Value, Token, TokenSpace, DatumType, Sku, ModuleTypes"""\r
-        Element.__init__(self)\r
-\r
-        self.Types      = []\r
-        self.CName      = ""\r
-        self.Value      = ""\r
-        self.Token      = ""\r
-        self.TokenSpace = ""\r
-        self.DatumType  = ""\r
-        self.Default    = ""\r
-        self.Sku        = ""\r
-        self.ModuleTypes= []\r
-\r
-################################################################################\r
-##\r
-## Module: framework module\r
-## \r
-################################################################################\r
-class Module(Element):\r
-    def __init__(self, **kwargs):\r
-        """Workspace, Package, Type, BaseName, FileBaseName, IsLibrary, PcdIsDriver,\r
-           NeedsFlashMap_h, SourceFiles, IncludePaths, IncludeFiles, NonProcessedFiles,\r
-           LibraryClasses, Guids, Protocols, Ppis, Externs, Pcds,\r
-           UserExtensions, BuildOptions, Environment\r
-        """\r
-        Element.__init__(self)\r
-\r
-        self.Workspace              = ""\r
-        self.Package                = ""\r
-        self.Type                   = ""\r
-        self.BaseName               = ""\r
-        self.FileBaseName           = ""\r
-        self.IsLibrary              = False\r
-        self.IsBinary               = False\r
-        self.PcdIsDriver            = False\r
-        self.NeedsFlashMap_h        = False\r
-        self.SourceFiles            = {}    # arch -> {file type -> [source file list]}\r
-        self.IncludePaths           = {}    # arch -> [path list]\r
-        self.IncludeFiles           = {}\r
-        \r
-        self.NonProcessedFiles      = []\r
-        self.LibraryClasses         = {}    # arch -> [library class list]\r
-        \r
-        self.Guids                  = {}    # arch -> [guid object list]\r
-        self.Protocols              = {}    # arch -> []\r
-        self.Ppis                   = {}    # arch -> []\r
-        \r
-        self.Externs                = {}    # arch -> []\r
-        self.Pcds                   = {}    # arch -> []\r
-        \r
-        self.UserExtensions = {}    # identifier -> ...\r
-        self.BuildOptions   = {}    # (toolchain, target, arch, toolcode, "FLAGS") -> flag\r
-        self.Environment    = {}\r
-        \r
-    def __eq__(self, other):\r
-        if not isinstance(other, Module):\r
-            return False\r
-\r
-        if self.GuidValue != other.GuidValue:\r
-            return False\r
-\r
-        if self.Version != other.Version:\r
-            return False\r
-\r
-        if self.Package != other.Package:\r
-            return False\r
-        \r
-        return True\r
-\r
-    def __hash__(self):\r
-        return hash(self.GuidValue + self.Version + hash(self.Package))\r
-\r
-################################################################################\r
-##\r
-##  PlatformModule: module for build\r
-##\r
-################################################################################\r
-class PlatformModule(Element):\r
-    def __init__(self, **kwargs):\r
-        """Workspace, Platform, Module, Libraries, Pcds, FfsLayouts, FvBindings\r
-           BuildOptions, BuildType, BuildFile, BuildPath, Sections, FfsFile, Environment\r
-        """\r
-        Element.__init__(self)\r
-        self.Workspace      = ""\r
-        self.Platform       = ""\r
-        self.Module         = ""\r
-        self.Libraries      = []\r
-        self.Pcds           = []\r
-        self.FfsLayouts     = []\r
-        self.FvBindings     = []\r
-        self.BuildOptions   = {}\r
-\r
-        self.BuildType      = "efi"    ## efi or lib\r
-        self.BuildFile      = "build.xml"\r
-        self.BuildPath      = "${MODULE_BUILD_DIR}"\r
-        self.Sections       = []\r
-        self.FfsFile        = ""\r
-        \r
-        self.Environment    = {}    # name/value pairs\r
-        \r
-    def __eq__(self, other):\r
-        if not isinstance(other, PlatformModule):\r
-            if not isinstance(other, Module):\r
-                return False\r
-            elif self.Module != other:\r
-                return False\r
-        elif self.Module != other.Module:\r
-            return False\r
-\r
-        return True\r
-\r
-    def __hash__(self):\r
-        return hash(self.Module)\r
-\r
-################################################################################\r
-##\r
-## Package: framework package\r
-##\r
-################################################################################\r
-class Package(Element):\r
-    def __init__(self, **kwargs):\r
-        """Workspace, ReadOnly, Repackage, Modules, PackageIncludes, StandardIncludes,\r
-           LibraryInterfaces, Guids, Protocols, Ppis, Pcds, Environment\r
-        """\r
-        Element.__init__(self)\r
-\r
-        self.Workspace          = ""\r
-        self.ReadOnly           = True\r
-        self.Repackage          = True\r
-        self.Modules            = []\r
-        self.PackageIncludes    = {}    # module type -> [include file list]\r
-        self.StandardIncludes   = []\r
-        self.LibraryInterfaces  = {}    # class name -> include file\r
-        self.Guids              = {}    # cname -> guid object\r
-        self.Protocols          = {}    # cname -> protocol object\r
-        self.Ppis               = {}    # cname -> ppi object\r
-        self.Pcds               = {}    # token -> pcd object\r
-\r
-        self.Environment        = {}\r
-\r
-################################################################################\r
-##\r
-## PackageDependency:\r
-##\r
-################################################################################\r
-class PackageDependency(Element):\r
-    def __init__(self, **kwargs):\r
-        """Package"""\r
-        Element.__init__(self)\r
-\r
-        self.Package = ""\r
-\r
-################################################################################\r
-##\r
-## Platform:\r
-## \r
-################################################################################\r
-class Platform(Element):\r
-    def __init__(self, **kwargs):\r
-        """Targets, OutputPath, Images, Modules, DynamicPcds, Fvs, Libraries\r
-           BuildFile, BuildPath, BuildOptions, UserExtensions\r
-        """\r
-        Element.__init__(self)\r
-        \r
-        self.Targets        = []\r
-        self.OutputPath     = ""\r
-        self.Images         = []\r
-        self.Modules        = {}    # arch -> [module list]\r
-        self.DynamicPcds    = []\r
-        self.FfsLayouts     = {}\r
-        self.Fvs            = {}\r
-        \r
-        self.Libraries      = {}    # arch -> [library instance]\r
-        self.BuildFile      = "build.xml"\r
-        self.BuildPath      = "${PLATFORM_BUILD_DIR}"\r
-        self.BuildOptions   = {}\r
-        self.UserExtensions = {}\r
-        \r
-        self.Environment    = {}    # name/value pairs\r
-\r
-################################################################################\r
-##\r
-## Workspace:\r
-##\r
-################################################################################\r
-class Workspace(Element):\r
-    def __init__(self, **kwargs):\r
-        """Packages, Platforms, Fars, Modules, PlatformIndex, PackageIndex"""\r
-        Element.__init__(self)\r
-\r
-        self.Packages               = []\r
-        self.Platforms              = []\r
-        self.Fars                   = []\r
-        self.Modules                = []\r
-\r
-        ## "GUID" : {guid : {version : platform}}\r
-        ## "PATH" : {path : platform}\r
-        ## "NAME" : {name : [platform]}\r
-        self.PlatformXref           = {\r
-                                        "GUID"  : {},\r
-                                        "PATH"  : {},\r
-                                        "NAME"  : {},\r
-                                      }\r
-        ## "GUID" : {guid : {version : package}}\r
-        ## "PATH" : {path : package}\r
-        ## "NAME" : {name : package}\r
-        self.PackageXref            = {\r
-                                        "GUID"  : {},\r
-                                        "PATH"  : {},\r
-                                        "NAME"  : {},\r
-                                      }\r
-        ## "GUID" : {guid : {version : [module]}}\r
-        ## "PATH" : {path : module}\r
-        ## "NAME" : {name : module}\r
-        self.ModuleXref             = {\r
-                                        "GUID"  : {},\r
-                                        "PATH"  : {},\r
-                                        "NAME"  : {},\r
-                                      }\r
-        ## "NAME" : {name : [library interface]}\r
-        ## "PATH" : {path : library interface}\r
-        self.LibraryInterfaceXref   = {\r
-                                        "PATH"  : {},\r
-                                        "NAME"  : {},\r
-                                      }\r
-        ## TODO\r
-        self.FarIndex               = {}\r
-\r
-        # from target.txt\r
-        self.TargetConfig           = {}\r
-        # from tools_def.txt\r
-        self.ToolConfig             = {}\r
-\r
-        self.ActivePlatform         = ""\r
-        self.ActiveToolchain        = ""\r
-        self.ActiveFamilies         = []\r
-        self.ActiveModules          = []\r
-        self.ActiveTargets          = []\r
-        self.ActiveArchs            = []\r
-\r
-        self.IndividualModuleBuild  = False\r
-        self.MultiThreadBuild       = False\r
-        self.ThreadCount            = "2"\r
-\r
-        self.Environment            = {}\r
-\r
-################################################################################\r
-##\r
-## For test:\r
-## \r
-################################################################################\r
-if __name__ == "__main__":\r
-    pass\r