X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FModuleInfo.java;h=01aa129cd53793a9b14cd2ea3936057cc72cd74a;hp=aa6e7a2ba0bac74ca5ade28c5768e760e49c5199;hb=6ef5feb50eea5d8fa0661938df0a247b0b29fdc6;hpb=446e26ee9238d189475baa37eb7658a6612f9a29 diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java b/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java index aa6e7a2ba0..01aa129cd5 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/ModuleInfo.java @@ -15,121 +15,78 @@ package org.tianocore.migration; import java.io.*; import java.util.*; +import org.tianocore.ModuleSurfaceAreaDocument; + /* - Class ModuleInfo is built for scanning the source files, it contains all the needed + Class ModuleInfo is built for scanning the source files, it contains all the needed information and all the temporary data. */ -public class ModuleInfo { - ModuleInfo(String modulepath) throws Exception { - this.modulepath = modulepath; - - MigrationTool.ui.println("Choose where to place the result"); - if ((outputpath = MigrationTool.ui.getFilepath()) == null) { - outputpath = modulepath; - } - MigrationTool.ui.println(outputpath); - - mainFlow(); - } - - public String modulepath = null; - - public String outputpath = null; - - public String modulename = null; - public String guidvalue = null; - public String moduletype = null; - public String entrypoint = null; - - public Set localmodulesources = new HashSet(); //contains both .c and .h - public Set preprocessedccodes = new HashSet(); - public Set msaorinf = new HashSet(); //only a little, hash may be too big for this - - public Set hashfuncc = new HashSet(); - public Set hashfuncd = new HashSet(); - public Set hashnonlocalfunc = new HashSet(); - public Set hashnonlocalmacro = new HashSet(); - public Set hashEFIcall = new HashSet(); - public Set hashr8only = new HashSet(); - - public Set hashrequiredr9libs = new HashSet(); // hashrequiredr9libs is now all added in SourceFileReplacer - public Set guid = new HashSet(); - public Set protocol = new HashSet(); - public Set ppi = new HashSet(); - - private void mainFlow() throws Exception { - - ModuleReader.ModuleScan(this); - - SourceFileReplacer.flush(this); // some adding library actions are taken here,so it must be put before "MsaWriter" - - // show result - if (MigrationTool.printModuleInfo) { - MigrationTool.ui.println("\nModule Information : "); - MigrationTool.ui.println("Entrypoint : " + entrypoint); - show(protocol, "Protocol : "); - show(ppi, "Ppi : "); - show(guid, "Guid : "); - show(hashfuncc, "call : "); - show(hashfuncd, "def : "); - show(hashEFIcall, "EFIcall : "); - show(hashnonlocalmacro, "macro : "); - show(hashnonlocalfunc, "nonlocal : "); - show(hashr8only, "hashr8only : "); - } - - new MsaWriter(this).flush(); - - if (MigrationTool.doCritic) { - Critic.fireAt(outputpath + File.separator + "Migration_" + modulename); - } - - Common.deleteDir(modulepath + File.separator + "temp"); - - MigrationTool.ui.println("Errors Left : " + MigrationTool.db.error); - MigrationTool.ui.println("Complete!"); - MigrationTool.ui.println("Your R9 module was placed here: " + modulepath + File.separator + "result"); - MigrationTool.ui.println("Your logfile was placed here: " + modulepath); - } - - private void show(Set hash, String show) { - MigrationTool.ui.println(show + hash.size()); - MigrationTool.ui.println(hash); - } - - public final void enroll(String filepath) throws Exception { - String[] temp; - if (filepath.contains(".c") || filepath.contains(".C") || filepath.contains(".h") || - filepath.contains(".H") || filepath.contains(".dxs") || filepath.contains(".uni")) { - temp = filepath.split("\\\\"); - localmodulesources.add(temp[temp.length - 1]); - } else if (filepath.contains(".inf") || filepath.contains(".msa")) { - temp = filepath.split("\\\\"); - msaorinf.add(temp[temp.length - 1]); - } - } +public final class ModuleInfo { + ModuleInfo(String modulepath) throws Exception { + this.modulepath = modulepath; + this.temppath = MigrationTool.getTempDir(this.modulepath); + } - public static final void seekModule(String filepath) throws Exception { - if (isModule(filepath)) { - new ModuleInfo(filepath); - } - } + public final String modulepath; + public final String temppath; + + private MsaOwner msaowner = new MsaWriter(this); + public ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance(); + + public String modulename = null; + public String guidvalue = null; + public String moduletype = null; + public String entrypoint = null; + + public final Set localmodulesources = new HashSet(); //contains both .c and .h + public final Set preprocessedccodes = new HashSet(); + public final Set msaorinf = new HashSet(); //only a little, hash may be too big for this + public final Set infincludes = new HashSet(); + public final Set infsources = new HashSet(); + + public final Set hashfuncc = new HashSet(); + public final Set hashfuncd = new HashSet(); + public final Set hashnonlocalfunc = new HashSet(); + public final Set hashnonlocalmacro = new HashSet(); + public final Set hashEFIcall = new HashSet(); + public final Set hashr8only = new HashSet(); + public final Set hashmacro = new HashSet(); + + public final Set hashrequiredr9libs = new HashSet(); // hashrequiredr9libs is now all added in SourceFileReplacer + public final Set guid = new HashSet(); + public final Set protocol = new HashSet(); + public final Set ppi = new HashSet(); - private static final boolean isModule(String path) { - String[] list = new File(path).list(); - for (int i = 0 ; i < list.length ; i++) { - if (!new File(list[i]).isDirectory()) { - if (list[i].contains(".inf") || list[i].contains(".msa")) { - return true; - } - } - } - return false; - } + public final String getModuleType() { + if (moduletype.contains("PEI")) { + return "PEIM"; + } else { + return "DXE_DRIVER"; + } + } + + public final void enroll(String filepath) throws Exception { + String temp = null; + if (filepath.contains(".c") || filepath.contains(".C") || filepath.contains(".h") || + filepath.contains(".H") || filepath.contains(".dxs") || filepath.contains(".uni")) { + localmodulesources.add(filepath.replace(modulepath + File.separator, "")); + } else if (filepath.contains(".inf") || filepath.contains(".msa")) { + temp = filepath.replace(modulepath + File.separator, ""); + if (!temp.contains(File.separator)) { // .inf in subdirectory is not regarded + msaorinf.add(temp); + } + } + } - public static final void triger(String path) throws Exception { - MigrationTool.ui.println("Project Migration"); - MigrationTool.ui.println("Copyright (c) 2006, Intel Corporation"); - Common.toDoAll(path, ModuleInfo.class.getMethod("seekModule", String.class), null, null, Common.DIR); - } + public static final boolean isModule(String path) { + String[] list = new File(path).list(); + for (int i = 0 ; i < list.length ; i++) { + if (!new File(list[i]).isDirectory()) { + if (list[i].contains(".inf") || list[i].contains(".msa")) { + return true; + } + } + } + return false; + } } \ No newline at end of file