]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/GenBuildThread.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / GenBuildThread.java
diff --git a/Tools/Source/GenBuild/org/tianocore/build/GenBuildThread.java b/Tools/Source/GenBuild/org/tianocore/build/GenBuildThread.java
deleted file mode 100644 (file)
index 738a448..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-/** @file\r
-  This file is for single module thread definition. \r
-\r
-Copyright (c) 2006, 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
-package org.tianocore.build;\r
-\r
-import java.util.Hashtable;\r
-import java.util.Iterator;\r
-import java.util.LinkedHashSet;\r
-import java.util.Set;\r
-import java.util.Vector;\r
-\r
-import org.apache.tools.ant.BuildException;\r
-import org.apache.tools.ant.BuildListener;\r
-import org.apache.tools.ant.Project;\r
-import org.apache.tools.ant.taskdefs.Property;\r
-import org.tianocore.build.GenBuildTask;\r
-import org.tianocore.build.fpd.FpdParserForThread;\r
-import org.tianocore.build.global.GenBuildLogger;\r
-import org.tianocore.build.id.FpdModuleIdentification;\r
-import org.tianocore.build.id.ModuleIdentification;\r
-import org.tianocore.common.logger.EdkLog;\r
-\r
-/**\r
-  Add more comment here. \r
-\r
-  @since GenBuild 1.0\r
-**/\r
-public class GenBuildThread implements Runnable {\r
-\r
-    private ModuleIdentification parentModuleId = null;\r
-\r
-    private ModuleIdentification moduleId = null;\r
-\r
-    private Set<FpdModuleIdentification> dependencies = new LinkedHashSet<FpdModuleIdentification>();\r
-    \r
-    private int status = FpdParserForThread.STATUS_DEPENDENCY_NOT_READY;\r
-\r
-    private Project project = null;\r
-\r
-    public Object semaphore = new Object();\r
-\r
-    private String arch = null;\r
-\r
-    private boolean highPriority = false;\r
-\r
-    private Thread thread;\r
-\r
-    public GenBuildThread(ModuleIdentification moduleId, String arch) {\r
-        this.moduleId = moduleId;\r
-        this.arch = arch;\r
-        thread = new Thread(FpdParserForThread.tg, this, moduleId + ":" + arch);\r
-    }\r
-\r
-    public boolean start() {\r
-        if (highPriority) {\r
-            thread.setPriority(Thread.MAX_PRIORITY);\r
-        }\r
-\r
-        status = FpdParserForThread.STATUS_START_RUN;\r
-\r
-        thread.start();\r
-\r
-        return true;\r
-    }\r
-\r
-    public void run() {\r
-\r
-        FpdModuleIdentification fpdModuleId = new FpdModuleIdentification(moduleId, arch);\r
-        \r
-        try {\r
-            //\r
-            // Prepare pass down properties\r
-            // ARCH, MODULE_GUID, MODULE_VERSION, PACKAGE_GUID, PACKAGE_VERSION, PLATFORM_FILE\r
-            //\r
-            Vector<Property> properties = new Vector<Property>();\r
-            Property property = new Property();\r
-            property.setName("ARCH");\r
-            property.setValue(arch);\r
-            properties.add(property);\r
-    \r
-            property = new Property();\r
-            property.setName("MODULE_GUID");\r
-            property.setValue(moduleId.getGuid());\r
-            properties.add(property);\r
-    \r
-            property = new Property();\r
-            property.setName("MODULE_VERSION");\r
-            if (moduleId.getVersion() == null) {\r
-                property.setValue("");\r
-            } else {\r
-                property.setValue(moduleId.getVersion());\r
-            }\r
-            properties.add(property);\r
-    \r
-            property = new Property();\r
-            property.setName("PACKAGE_GUID");\r
-            property.setValue(moduleId.getPackage().getGuid());\r
-            properties.add(property);\r
-    \r
-            property = new Property();\r
-            property.setName("PACKAGE_VERSION");\r
-            if (moduleId.getPackage().getVersion() == null) {\r
-                property.setValue("");\r
-            } else {\r
-                property.setValue(moduleId.getPackage().getVersion());\r
-            }\r
-            properties.add(property);\r
-    \r
-            //\r
-            // Build the Module\r
-            //\r
-            GenBuildTask genBuildTask = new GenBuildTask();\r
-    \r
-            Project newProject = new Project();\r
-    \r
-            Hashtable passdownProperties = project.getProperties();\r
-            Iterator iter = passdownProperties.keySet().iterator();\r
-            while (iter.hasNext()) {\r
-                String item = (String) iter.next();\r
-                newProject.setProperty(item, (String) passdownProperties.get(item));\r
-            }\r
-    \r
-            newProject.setInputHandler(project.getInputHandler());\r
-    \r
-            Iterator listenerIter = project.getBuildListeners().iterator();\r
-            GenBuildLogger newLogger = null;\r
-            while (listenerIter.hasNext()) {\r
-                BuildListener item = (BuildListener)listenerIter.next();\r
-                if (item instanceof GenBuildLogger) {\r
-                    newLogger = (GenBuildLogger)((GenBuildLogger)item).clone();\r
-                    newLogger.setId(fpdModuleId);\r
-                    newProject.addBuildListener(newLogger);\r
-                } else {\r
-                    newProject.addBuildListener(item);\r
-                }\r
-            }\r
-    \r
-            project.initSubProject(newProject);\r
-            \r
-            genBuildTask.setProject(newProject);\r
-    \r
-            genBuildTask.setExternalProperties(properties);\r
-    \r
-            genBuildTask.parentId = parentModuleId;\r
-\r
-            genBuildTask.perform();\r
-        } catch (BuildException be) {\r
-            \r
-            EdkLog.log("GenBuild", EdkLog.EDK_ALWAYS, fpdModuleId + " build error. \n" + be.getMessage());\r
-            \r
-            if (FpdParserForThread.errorModule == null) {\r
-                FpdParserForThread.errorModule = fpdModuleId;\r
-            }\r
-            \r
-            synchronized (FpdParserForThread.deamonSemaphore) {\r
-                FpdParserForThread.subCount();\r
-                FpdParserForThread.deamonSemaphore.notifyAll();\r
-            }\r
-            \r
-            return ;\r
-        }\r
-        \r
-        status = FpdParserForThread.STATUS_END_RUN;\r
-\r
-        EdkLog.log("GenBuild", EdkLog.EDK_ALWAYS, fpdModuleId + " build finished. ");\r
-        \r
-        //\r
-        // \r
-        //\r
-        synchronized (FpdParserForThread.deamonSemaphore) {\r
-            FpdParserForThread.subCount();\r
-            FpdParserForThread.deamonSemaphore.notifyAll();\r
-        }\r
-    }\r
-\r
-    public void setArch(String arch) {\r
-        this.arch = arch;\r
-    }\r
-\r
-    public void setDependencies(Set<FpdModuleIdentification> dependencies) {\r
-        this.dependencies = dependencies;\r
-    }\r
-\r
-    public void setModuleId(ModuleIdentification moduleId) {\r
-        this.moduleId = moduleId;\r
-    }\r
-\r
-    public void setParentModuleId(ModuleIdentification parentModuleId) {\r
-        this.parentModuleId = parentModuleId;\r
-    }\r
-\r
-    public void setProject(Project project) {\r
-        this.project = project;\r
-    }\r
-\r
-    public void setHighPriority(boolean highPriority) {\r
-        this.highPriority = highPriority;\r
-    }\r
-\r
-\r
-    public Set<FpdModuleIdentification> getDependencies() {\r
-        return dependencies;\r
-    }\r
-\r
-    public ModuleIdentification getModuleId() {\r
-        return moduleId;\r
-    }\r
-\r
-    public int getStatus() {\r
-        //\r
-        // Add code here to judge dependency\r
-        //\r
-        if (status == FpdParserForThread.STATUS_DEPENDENCY_NOT_READY) {\r
-            Iterator<FpdModuleIdentification> iter = dependencies.iterator();\r
-            boolean flag = true;\r
-            while (iter.hasNext()) {\r
-                FpdModuleIdentification item = iter.next();\r
-                if (FpdParserForThread.allThreads.get(item).getStatus() == 1) {\r
-                    flag = false;\r
-                    break ;\r
-                }\r
-            }\r
-            if (flag) {\r
-                status = FpdParserForThread.STATUS_DEPENDENCY_READY;\r
-            }\r
-        }\r
-        return status;\r
-    }\r
-\r
-    public void setStatus(int status) {\r
-        this.status = status;\r
-    }\r
-}\r