]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java
Turn to Regex in ModuleReader.java
[mirror_edk2.git] / Tools / Source / MigrationTools / org / tianocore / migration / MsaWriter.java
index 46cbb2dd51245e253d8358ea9a792f2b8844d09a..2c3c97274e5ba3bde5400520e21dea6fdc4d8045 100644 (file)
@@ -1,3 +1,15 @@
+/** @file\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
+ **/\r
 package org.tianocore.migration;\r
 \r
 import java.io.*;\r
@@ -24,9 +36,9 @@ public class MsaWriter {
        private MsaHeaderDocument.MsaHeader msaheader = msa.addNewMsaHeader();\r
        private ModuleDefinitionsDocument.ModuleDefinitions md = msa.addNewModuleDefinitions();\r
        private SourceFilesDocument.SourceFiles sourcefiles = msa.addNewSourceFiles();  //found local .h files are not written\r
-       private GuidsDocument.Guids guids = msa.addNewGuids();\r
-       private ProtocolsDocument.Protocols protocols = msa.addNewProtocols();\r
-       private PPIsDocument.PPIs ppis = msa.addNewPPIs();\r
+       private GuidsDocument.Guids guids;\r
+       private ProtocolsDocument.Protocols protocols;\r
+       private PPIsDocument.PPIs ppis;\r
        private PackageDependenciesDocument.PackageDependencies pd = msa.addNewPackageDependencies();\r
        private LibraryClassDefinitionsDocument.LibraryClassDefinitions libclassdefs = msa.addNewLibraryClassDefinitions();\r
        private ExternsDocument.Externs externs = msa.addNewExterns();\r
@@ -46,12 +58,12 @@ public class MsaWriter {
                if (mi.modulename != null) {\r
                        msaheader.setModuleName(mi.modulename);\r
                } else {\r
-                       msaheader.setModuleName(mi.modulename = Query("ModuleName Not Found . Please Input ModuleName"));\r
+                       msaheader.setModuleName(mi.modulename = Query("Module Name Not Found!  Please Input ModuleName"));\r
                }\r
                if (mi.guidvalue != null) {\r
                        msaheader.setGuidValue(mi.guidvalue);\r
                } else {\r
-                       msaheader.setGuidValue(mi.guidvalue = Query("GuidValue Not Found . Please Input GuidValue"));\r
+                       msaheader.setGuidValue(mi.guidvalue = Query("Guid Value Not Found!  Please Input Guid Value"));\r
                }\r
                if (mi.moduletype != null) {\r
                        if (mi.moduletype.contains("PEI")) {\r
@@ -60,12 +72,13 @@ public class MsaWriter {
                                msaheader.setModuleType(ModuleTypeDef.Enum.forString("DXE_DRIVER"));\r
                        }\r
                } else {\r
-                       msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.moduletype = Query("GuidValue Not Found . Please Input GuidValue")));\r
+                       msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.moduletype = Query("Guid Value Not Found!  Please Input Guid Value")));\r
                }\r
+\r
                msaheader.setCopyright("Copyright (c) 2006, Intel Corporation");\r
                msaheader.setVersion("1.0");\r
                msaheader.setAbstract("Component name for module " + mi.modulename);\r
-               msaheader.setDescription("FIX ME!");                                                    //???\r
+               msaheader.setDescription("FIX ME!");\r
                msaheader.addNewLicense().setStringValue("All rights reserved.\n" +\r
                                "      This software and associated documentation (if any) is furnished\n" +\r
                                "      under a license and may only be used or copied in accordance\n" +\r
@@ -74,6 +87,7 @@ public class MsaWriter {
                                "      reproduced, stored in a retrieval system, or transmitted in any\n" +\r
                                "      form or by any means without the express written consent of\n" +\r
                                "      Intel Corporation.");\r
+               msaheader.setSpecification("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052");\r
                \r
                List<Enum> arch = new ArrayList<Enum>();\r
                arch.add(SupportedArchitectures.IA_32);\r
@@ -89,32 +103,49 @@ public class MsaWriter {
                externs.addNewSpecification().setStringValue("EDK_RELEASE_VERSION 0x00020000");\r
                externs.addNewExtern().setModuleEntryPoint(mi.entrypoint);\r
                \r
+               FilenameDocument.Filename filename;\r
                it = mi.localmodulesources.iterator();\r
+               //System.out.println(mi.localmodulesources);\r
                while (it.hasNext()) {\r
-                       sourcefiles.addNewFilename().setStringValue(it.next());\r
+                       temp = it.next();\r
+                       filename = sourcefiles.addNewFilename();\r
+                       filename.setStringValue(temp);\r
+                       //if (temp.contains("x64" + File.separator)) {\r
+                               //System.out.println("find");\r
+                               //filename.setSupArchList();\r
+                       //}\r
                }\r
-               it = mi.protocol.iterator();\r
-               while (it.hasNext()) {\r
-                       if ((temp = it.next()) != null) {\r
-                               ProtocolsDocument.Protocols.Protocol pr = protocols.addNewProtocol();\r
-                               pr.setProtocolCName(temp);\r
-                               pr.setUsage(UsageTypes.ALWAYS_CONSUMED);\r
+               if (!mi.protocol.isEmpty()) {\r
+                       protocols = msa.addNewProtocols();\r
+                       it = mi.protocol.iterator();\r
+                       while (it.hasNext()) {\r
+                               if ((temp = it.next()) != null) {\r
+                                       ProtocolsDocument.Protocols.Protocol pr = protocols.addNewProtocol();\r
+                                       pr.setProtocolCName(temp);\r
+                                       pr.setUsage(UsageTypes.ALWAYS_CONSUMED);\r
+                               }\r
                        }\r
                }\r
-               it = mi.ppi.iterator();\r
-               while (it.hasNext()) {\r
-                       if ((temp = it.next()) != null) {\r
-                               PPIsDocument.PPIs.Ppi pp = ppis.addNewPpi();\r
-                               pp.setPpiCName(temp);\r
-                               pp.setUsage(UsageTypes.ALWAYS_CONSUMED);\r
+               if (!mi.ppi.isEmpty()) {\r
+                       ppis = msa.addNewPPIs();\r
+                       it = mi.ppi.iterator();\r
+                       while (it.hasNext()) {\r
+                               if ((temp = it.next()) != null) {\r
+                                       PPIsDocument.PPIs.Ppi pp = ppis.addNewPpi();\r
+                                       pp.setPpiCName(temp);\r
+                                       pp.setUsage(UsageTypes.ALWAYS_CONSUMED);\r
+                               }\r
                        }\r
                }\r
-               it = mi.guid.iterator();\r
-               while (it.hasNext()) {\r
-                       if ((temp = it.next()) != null) {\r
-                               GuidsDocument.Guids.GuidCNames gcn = guids.addNewGuidCNames();\r
-                               gcn.setGuidCName(temp);\r
-                               gcn.setUsage(UsageTypes.ALWAYS_CONSUMED);\r
+               if (!mi.guid.isEmpty()) {\r
+                       guids = msa.addNewGuids();\r
+                       it = mi.guid.iterator();\r
+                       while (it.hasNext()) {\r
+                               if ((temp = it.next()) != null) {\r
+                                       GuidsDocument.Guids.GuidCNames gcn = guids.addNewGuidCNames();\r
+                                       gcn.setGuidCName(temp);\r
+                                       gcn.setUsage(UsageTypes.ALWAYS_CONSUMED);\r
+                               }\r
                        }\r
                }\r
                it = mi.hashrequiredr9libs.iterator();\r