]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/pcd/action/PlatformPcdPreprocessActionForBuilding.java
Refine the code for PCD tools.
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / pcd / action / PlatformPcdPreprocessActionForBuilding.java
index fd1ae56eb646bcfd71281f3ce6fa30a753e0a5b4..4d2335dfd2525975e791e01d124b1bce262b858e 100644 (file)
@@ -19,7 +19,6 @@ package org.tianocore.build.pcd.action;
 \r
 import java.io.File;\r
 import java.io.IOException;\r
-import java.math.BigInteger;\r
 import java.util.ArrayList;\r
 import java.util.Iterator;\r
 import java.util.List;\r
@@ -28,18 +27,19 @@ import java.util.Map;
 import org.apache.xmlbeans.XmlException;\r
 import org.apache.xmlbeans.XmlObject;\r
 import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions;\r
+import org.tianocore.PcdBuildDefinitionDocument;\r
 import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.build.exception.PlatformPcdPreprocessBuildException;\r
 import org.tianocore.build.fpd.FpdParserTask;\r
 import org.tianocore.build.global.GlobalData;\r
 import org.tianocore.build.id.FpdModuleIdentification;\r
 import org.tianocore.pcd.action.ActionMessage;\r
-import org.tianocore.pcd.entity.ModulePcdInfoFromFpd;\r
+import org.tianocore.pcd.action.PlatformPcdPreprocessAction;\r
 import org.tianocore.pcd.entity.MemoryDatabaseManager;\r
+import org.tianocore.pcd.entity.ModulePcdInfoFromFpd;\r
 import org.tianocore.pcd.entity.Token;\r
 import org.tianocore.pcd.entity.UsageIdentification;\r
 import org.tianocore.pcd.exception.EntityException;\r
-import org.tianocore.pcd.action.PlatformPcdPreprocessAction;\r
-import org.tianocore.build.exception.PlatformPcdPreprocessBuildException;\r
 import org.tianocore.pcd.exception.PlatformPcdPreprocessException;\r
 \r
 /**\r
@@ -49,7 +49,7 @@ import org.tianocore.pcd.exception.PlatformPcdPreprocessException;
 **/\r
 public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreprocessAction {\r
     ///\r
-    /// FPD file is the root file.\r
+    /// FPD file path.\r
     ///\r
     private String                      fpdFilePath;\r
 \r
@@ -87,7 +87,7 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
     /**\r
       Common function interface for outer.\r
 \r
-      @param fpdFilePath    The fpd file path of current build or analysis.\r
+      @param fpdFilePath    The fpd file path of current build or processing.\r
       @param messageLevel   The message level for this Action.\r
 \r
       @throws  PlatformPreprocessBuildException \r
@@ -97,7 +97,7 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
     **/\r
     public void perform(String fpdFilePath, int messageLevel) \r
         throws PlatformPcdPreprocessBuildException {\r
-        setFPDFilePath(fpdFilePath);\r
+        this.fpdFilePath = fpdFilePath;\r
         setActionMessageLevel(messageLevel);\r
         checkParameter();\r
         execute();\r
@@ -120,7 +120,9 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
 \r
     **/\r
     public void execute() throws PlatformPcdPreprocessBuildException {\r
-        String errorMessageHeader = "Fail to initialize Pcd memory database for building. Because:";\r
+        String errorMessageHeader   = "Failed to initialize the Pcd memory database because: ";\r
+        String errorsForPreprocess  = null;\r
+\r
         //\r
         // Get memoryDatabaseManager instance from GlobalData.\r
         // The memoryDatabaseManager should be initialized as static variable\r
@@ -138,6 +140,10 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
         } catch (PlatformPcdPreprocessException exp) {\r
             throw new PlatformPcdPreprocessBuildException(errorMessageHeader + exp.getMessage());\r
         }\r
+        errorsForPreprocess = this.getErrorString();\r
+        if (errorsForPreprocess != null) {\r
+            throw new PlatformPcdPreprocessBuildException(errorMessageHeader + "\r\n" + errorsForPreprocess);\r
+        }\r
 \r
         //\r
         // Generate for PEI, DXE PCD DATABASE's definition and initialization.\r
@@ -145,7 +151,7 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
         try {\r
             genPcdDatabaseSourceCode ();\r
         } catch (EntityException exp) {\r
-            throw new PlatformPcdPreprocessBuildException(errorMessageHeader + exp.getMessage());\r
+            throw new PlatformPcdPreprocessBuildException(errorMessageHeader + "\r\n" + exp.getMessage());\r
         }\r
     }\r
 \r
@@ -154,16 +160,16 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
 \r
       @param guidCName      Guid CName string.\r
 \r
-      @return String[]      Guid information from SPD file.\r
+      @return String        Guid information from SPD file.\r
       @throws PlatformPcdPreprocessException\r
                             Fail to get Guid information from SPD file.\r
     **/\r
-    public String[] getGuidInfoFromSpd(String guidCName) throws PlatformPcdPreprocessException {\r
-        String[] tokenSpaceStrRet = null;\r
+    public String getGuidInfoFromSpd(String guidCName) throws PlatformPcdPreprocessException {\r
+        String tokenSpaceStrRet = null;\r
         try {\r
             tokenSpaceStrRet = GlobalData.getGuidInfoFromCname(guidCName);\r
         } catch ( Exception e ) {\r
-            throw new PlatformPcdPreprocessException ("Failed get Guid CName " + guidCName + "from SPD file!");\r
+            throw new PlatformPcdPreprocessException ("Failed to get Guid CName " + guidCName + " from the SPD file!");\r
         }\r
         return tokenSpaceStrRet;\r
     }\r
@@ -228,7 +234,10 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
                                                                  id.getArch(),\r
                                                                  id.getModule().getVersion(),\r
                                                                  id.getModule().getModuleType());\r
-            allModules.add(new ModulePcdInfoFromFpd(usageId, pcdBuildDefinitions.get(id)));\r
+            allModules.add(\r
+                new ModulePcdInfoFromFpd(\r
+                    usageId, \r
+                    ((PcdBuildDefinitionDocument)pcdBuildDefinitions.get(id)).getPcdBuildDefinition()));\r
         }\r
         return allModules;\r
     }\r
@@ -250,315 +259,10 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
                               String            datum,\r
                               Token.DATUM_TYPE  datumType,\r
                               int               maxDatumSize) {\r
-        String      exceptionString = null;\r
-        int         value;\r
-        BigInteger  value64;\r
-        String      subStr;\r
-        int         index;\r
-\r
-        if (moduleName == null) {\r
-            moduleName = "section <DynamicPcdBuildDefinitions>";\r
-        } else {\r
-            moduleName = "module " + moduleName;\r
-        }\r
-\r
-        if (maxDatumSize == 0) {\r
-            exceptionString = String.format("[FPD file error] You maybe miss <MaxDatumSize> for PCD %s in %s",\r
-                                            cName,\r
-                                            moduleName);\r
-            return exceptionString;\r
-        }\r
-\r
-        switch (datumType) {\r
-        case UINT8:\r
-            if (maxDatumSize != 1) {\r
-                exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
-                                                "is UINT8, but datum size is %d, they are not matched!",\r
-                                                 cName,\r
-                                                 moduleName,\r
-                                                 maxDatumSize);\r
-                return exceptionString;\r
-            }\r
-\r
-            if (datum != null) {\r
-                try {\r
-                    value = Integer.decode(datum);\r
-                } catch (NumberFormatException nfeExp) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is not valid "+\r
-                                                    "digital format of UINT8",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-                if (value > 0xFF) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s exceed"+\r
-                                                    " the max size of UINT8 - 0xFF",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    datum);\r
-                    return exceptionString;\r
-                }\r
-            }\r
-            break;\r
-        case UINT16:\r
-            if (maxDatumSize != 2) {\r
-                exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
-                                                "is UINT16, but datum size is %d, they are not matched!",\r
-                                                 cName,\r
-                                                 moduleName,\r
-                                                 maxDatumSize);\r
-                return exceptionString;\r
-            }\r
-            if (datum != null) {\r
-                try {\r
-                    value = Integer.decode(datum);\r
-                } catch (NumberFormatException nfeExp) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is "+\r
-                                                    "not valid digital of UINT16",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-                if (value > 0xFFFF) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s "+\r
-                                                    "which exceed the range of UINT16 - 0xFFFF",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    datum);\r
-                    return exceptionString;\r
-                }\r
-            }\r
-            break;\r
-        case UINT32:\r
-            if (maxDatumSize != 4) {\r
-                exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
-                                                "is UINT32, but datum size is %d, they are not matched!",\r
-                                                 cName,\r
-                                                 moduleName,\r
-                                                 maxDatumSize);\r
-                return exceptionString;\r
-            }\r
-\r
-            if (datum != null) {\r
-                try {\r
-                    if (datum.length() > 2) {\r
-                        if ((datum.charAt(0) == '0')        &&\r
-                            ((datum.charAt(1) == 'x') || (datum.charAt(1) == 'X'))){\r
-                            subStr = datum.substring(2, datum.length());\r
-                            value64 = new BigInteger(subStr, 16);\r
-                        } else {\r
-                            value64 = new BigInteger(datum);\r
-                        }\r
-                    } else {\r
-                        value64 = new BigInteger(datum);\r
-                    }\r
-                } catch (NumberFormatException nfeExp) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is not "+\r
-                                                    "valid digital of UINT32",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-\r
-                if (value64.bitLength() > 32) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s which "+\r
-                                                    "exceed the range of UINT32 - 0xFFFFFFFF",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    datum);\r
-                    return exceptionString;\r
-                }\r
-            }\r
-            break;\r
-        case UINT64:\r
-            if (maxDatumSize != 8) {\r
-                exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
-                                                "is UINT64, but datum size is %d, they are not matched!",\r
-                                                 cName,\r
-                                                 moduleName,\r
-                                                 maxDatumSize);\r
-                return exceptionString;\r
-            }\r
-\r
-            if (datum != null) {\r
-                try {\r
-                    if (datum.length() > 2) {\r
-                        if ((datum.charAt(0) == '0')        &&\r
-                            ((datum.charAt(1) == 'x') || (datum.charAt(1) == 'X'))){\r
-                            subStr = datum.substring(2, datum.length());\r
-                            value64 = new BigInteger(subStr, 16);\r
-                        } else {\r
-                            value64 = new BigInteger(datum);\r
-                        }\r
-                    } else {\r
-                        value64 = new BigInteger(datum);\r
-                    }\r
-                } catch (NumberFormatException nfeExp) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is not valid"+\r
-                                                    " digital of UINT64",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-\r
-                if (value64.bitLength() > 64) {\r
-                    exceptionString = String.format("[FPD file error] The datum for PCD %s in %s is %s "+\r
-                                                    "exceed the range of UINT64 - 0xFFFFFFFFFFFFFFFF",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    datum);\r
-                    return exceptionString;\r
-                }\r
-            }\r
-            break;\r
-        case BOOLEAN:\r
-            if (maxDatumSize != 1) {\r
-                exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
-                                                "is BOOLEAN, but datum size is %d, they are not matched!",\r
-                                                 cName,\r
-                                                 moduleName,\r
-                                                 maxDatumSize);\r
-                return exceptionString;\r
-            }\r
-\r
-            if (datum != null) {\r
-                if (!(datum.equalsIgnoreCase("TRUE") ||\r
-                     datum.equalsIgnoreCase("FALSE"))) {\r
-                    exceptionString = String.format("[FPD file error] The datum type of PCD data %s in %s "+\r
-                                                    "is BOOELAN, but value is not 'true'/'TRUE' or 'FALSE'/'false'",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-\r
-            }\r
-            break;\r
-        case POINTER:\r
-            if (datum == null) {\r
-                break;\r
-            }\r
-\r
-            char    ch     = datum.charAt(0);\r
-            int     start, end;\r
-            String  strValue;\r
-            //\r
-            // For void* type PCD, only three datum is support:\r
-            // 1) Unicode: string with start char is "L"\r
-            // 2) Ansci: String start char is ""\r
-            // 3) byte array: String start char "{"\r
-            //\r
-            if (ch == 'L') {\r
-                start       = datum.indexOf('\"');\r
-                end         = datum.lastIndexOf('\"');\r
-                if ((start > end)           ||\r
-                    (end   > datum.length())||\r
-                    ((start == end) && (datum.length() > 0))) {\r
-                    exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID* and datum is "+\r
-                                                    "a UNICODE string because start with L\", but format maybe"+\r
-                                                    "is not right, correct UNICODE string is L\"...\"!",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-\r
-                strValue    = datum.substring(start + 1, end);\r
-                if ((strValue.length() * 2) > maxDatumSize) {\r
-                    exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and datum is "+\r
-                                                    "a UNICODE string, but the datum size is %d exceed to <MaxDatumSize> : %d",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    strValue.length() * 2,\r
-                                                    maxDatumSize);\r
-                    return exceptionString;\r
-                }\r
-            } else if (ch == '\"'){\r
-                start       = datum.indexOf('\"');\r
-                end         = datum.lastIndexOf('\"');\r
-                if ((start > end)           ||\r
-                    (end   > datum.length())||\r
-                    ((start == end) && (datum.length() > 0))) {\r
-                    exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID* and datum is "+\r
-                                                    "a ANSCII string because start with \", but format maybe"+\r
-                                                    "is not right, correct ANSIC string is \"...\"!",\r
-                                                    cName,\r
-                                                    moduleName);\r
-                    return exceptionString;\r
-                }\r
-                strValue    = datum.substring(start + 1, end);\r
-                if ((strValue.length()) > maxDatumSize) {\r
-                    exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and datum is "+\r
-                                                    "a ANSCI string, but the datum size is %d which exceed to <MaxDatumSize> : %d",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    strValue.length(),\r
-                                                    maxDatumSize);\r
-                    return exceptionString;\r
-                }\r
-            } else if (ch =='{') {\r
-                String[]  strValueArray;\r
-\r
-                start           = datum.indexOf('{');\r
-                end             = datum.lastIndexOf('}');\r
-                strValue        = datum.substring(start + 1, end);\r
-                strValue        = strValue.trim();\r
-                if (strValue.length() == 0) {\r
-                    exceptionString = String.format ("[FPD file error] The datum type of PCD %s in %s is VOID*, and "+\r
-                                                     "it is byte array in fact, but '{}' is not valid for NULL datam but"+\r
-                                                     " need use '{0}'",\r
-                                                     cName,\r
-                                                     moduleName);\r
-                    return exceptionString;\r
-                }\r
-                strValueArray   = strValue.split(",");\r
-                for (index = 0; index < strValueArray.length; index ++) {\r
-                    try{\r
-                        value = Integer.decode(strValueArray[index].trim());\r
-                    } catch (NumberFormatException nfeEx) {\r
-                        exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and "+\r
-                                                         "it is byte array in fact. For every byte in array should be a valid"+\r
-                                                         "byte digital, but element %s is not a valid byte digital!",\r
-                                                         cName,\r
-                                                         moduleName,\r
-                                                         strValueArray[index]);\r
-                        return exceptionString;\r
-                    }\r
-                    if (value > 0xFF) {\r
-                        exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, "+\r
-                                                        "it is byte array in fact. But the element of %s exceed the byte range",\r
-                                                        cName,\r
-                                                        moduleName,\r
-                                                        strValueArray[index]);\r
-                        return exceptionString;\r
-                    }\r
-                }\r
-\r
-                if (strValueArray.length > maxDatumSize) {\r
-                    exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*, and datum is byte"+\r
-                                                    "array, but the number of bytes is %d which exceed to <MaxDatumSzie> : %d!",\r
-                                                    cName,\r
-                                                    moduleName,\r
-                                                    strValueArray.length,\r
-                                                    maxDatumSize);\r
-                    return exceptionString;\r
-                }\r
-            } else {\r
-                exceptionString = String.format("[FPD file error] The datum type of PCD %s in %s is VOID*. For VOID* type, you have three format choise:\n "+\r
-                                                "1) UNICODE string: like L\"xxxx\";\r\n"+\r
-                                                "2) ANSIC string: like \"xxx\";\r\n"+\r
-                                                "3) Byte array: like {0x2, 0x45, 0x23}\r\n"+\r
-                                                "But the datum in seems does not following above format!",\r
-                                                cName,\r
-                                                moduleName);\r
-                return exceptionString;\r
-            }\r
-            break;\r
-        default:\r
-            exceptionString = String.format("[FPD file error] For PCD entry %s in %s, datum type is unknown, it should be one of "+\r
-                                            "UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN",\r
-                                            cName,\r
-                                            moduleName);\r
-            return exceptionString;\r
-        }\r
+        //\r
+        // In building system, datum should not be checked, the checking work\r
+        // should be done by wizard tools or PCD verification tools.\r
+        //                                \r
         return null;\r
     }\r
 \r
@@ -580,7 +284,7 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
         String dynamicPrimaryKey = null;\r
         DynamicPcdBuildDefinitions                    dynamicPcdBuildDefinitions = null;\r
         List<DynamicPcdBuildDefinitions.PcdBuildData> dynamicPcdBuildDataArray   = null;\r
-        String[]                                      tokenSpaceStrRet           = null;\r
+        String                                        tokenSpaceStrRet           = null;\r
 \r
         //\r
         // If FPD document is not be opened, open and initialize it.\r
@@ -598,28 +302,27 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
 \r
         dynamicPcdBuildDefinitions = fpdDocInstance.getPlatformSurfaceArea().getDynamicPcdBuildDefinitions();\r
         if (dynamicPcdBuildDefinitions == null) {\r
-            exceptionString = String.format("[FPD file error] There are no <PcdDynamicBuildDescriptions> in FPD file but contains Dynamic type "+\r
-                                            "PCD entry %s in module %s!",\r
+            exceptionString = String.format("[FPD file error] There are no <PcdDynamicBuildDescriptions> elements in FPD file but there are Dynamic type "+\r
+                                            "PCD entries %s in module %s!",\r
                                             token.cName,\r
                                             moduleName);\r
-            throw new PlatformPcdPreprocessException(exceptionString);\r
+            putError(exceptionString);\r
+            return null;\r
         }\r
 \r
         dynamicPcdBuildDataArray = dynamicPcdBuildDefinitions.getPcdBuildDataList();\r
         for (index = 0; index < dynamicPcdBuildDataArray.size(); index ++) {\r
-            try {\r
-                tokenSpaceStrRet = GlobalData.getGuidInfoFromCname(dynamicPcdBuildDataArray.get(index).getTokenSpaceGuidCName());\r
-            } catch (Exception e) {\r
-                throw new PlatformPcdPreprocessException ("Fail to get token space guid for token " + dynamicPcdBuildDataArray.get(index).getCName());\r
-            }\r
+            tokenSpaceStrRet = getGuidInfoFromSpd(dynamicPcdBuildDataArray.get(index).getTokenSpaceGuidCName());\r
 \r
             if (tokenSpaceStrRet == null) {\r
-                throw new PlatformPcdPreprocessException ("Fail to get token space guid for token " + dynamicPcdBuildDataArray.get(index).getCName());\r
+                exceptionString = "Fail to get token space guid for token " + dynamicPcdBuildDataArray.get(index).getCName();\r
+                putError(exceptionString);\r
+                continue;\r
             }\r
 \r
             dynamicPrimaryKey = Token.getPrimaryKeyString(dynamicPcdBuildDataArray.get(index).getCName(),\r
-                                                          tokenSpaceStrRet[1]);\r
-            if (dynamicPrimaryKey.equalsIgnoreCase(token.getPrimaryKeyString())) {\r
+                                                          tokenSpaceStrRet);\r
+            if (dynamicPrimaryKey.equals(token.getPrimaryKeyString())) {\r
                 return dynamicPcdBuildDataArray.get(index);\r
             }\r
         }\r
@@ -670,11 +373,11 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
         File file = null;\r
 \r
         if (fpdFilePath == null) {\r
-            throw new PlatformPcdPreprocessBuildException("WorkspacePath and FPDFileName should be blank for CollectPCDAtion!");\r
+            throw new PlatformPcdPreprocessBuildException("FPDFileName should be empty for CollectPCDAtion!");\r
         }\r
 \r
         if (fpdFilePath.length() == 0) {\r
-            throw new PlatformPcdPreprocessBuildException("WorkspacePath and FPDFileName should be blank for CollectPCDAtion!");\r
+            throw new PlatformPcdPreprocessBuildException("FPDFileName should be empty for CollectPCDAtion!");\r
         }\r
 \r
         file = new File(fpdFilePath);\r
@@ -683,23 +386,4 @@ public class PlatformPcdPreprocessActionForBuilding extends PlatformPcdPreproces
             throw new PlatformPcdPreprocessBuildException("FPD File " + fpdFilePath + " does not exist!");\r
         }\r
     }\r
-\r
-    /**\r
-      Test case function\r
-\r
-      @param argv  parameter from command line\r
-    **/\r
-    public static void main(String argv[]) throws PlatformPcdPreprocessBuildException {\r
-        PlatformPcdPreprocessActionForBuilding ca = new PlatformPcdPreprocessActionForBuilding();\r
-        String projectDir = "x:/edk2";\r
-        ca.setFPDFilePath(projectDir + "/EdkNt32Pkg/Nt32.fpd");\r
-        ca.setActionMessageLevel(ActionMessage.MAX_MESSAGE_LEVEL);\r
-        GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",\r
-                            projectDir,\r
-                            "tools_def.txt");\r
-        System.out.println("After initInfo!");\r
-        FpdParserTask fpt = new FpdParserTask();\r
-        fpt.parseFpdFile(new File(projectDir + "/EdkNt32Pkg/Nt32.fpd"));\r
-        ca.execute();\r
-    }\r
 }\r