]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java
Fully support active platform policy.
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / fpd / FpdParserTask.java
index ffbd919a728e3328760b2e20385998dd2ac52a3d..b61ad065f137e6b6b5fd1cf6f293f0b2d173ce58 100644 (file)
@@ -139,7 +139,7 @@ public class FpdParserTask extends Task {
             if (platformName == null) {\r
                 throw new BuildException("FpdParserTask parameter error. Please specify platform name or FPD file. ");\r
             }\r
-            platformId = GlobalData.getPlatform(platformName);\r
+            platformId = GlobalData.getPlatformByName(platformName);\r
             fpdFile = platformId.getFpdFile();\r
         }\r
         \r
@@ -147,20 +147,6 @@ public class FpdParserTask extends Task {
         // Parse FPD file\r
         //\r
         parseFpdFile();\r
-\r
-        getProject().setProperty("PLATFORM", platformId.getName());\r
-        getProject().setProperty("PLATFORM_DIR", platformId.getFpdFile().getParent().replaceAll("(\\\\)", "/"));\r
-        getProject().setProperty("PLATFORM_RELATIVE_DIR", platformId.getPlatformRelativeDir().replaceAll("(\\\\)", "/"));\r
-\r
-        //\r
-        // Pcd Collection. Call CollectPCDAction to collect pcd info.\r
-        //\r
-        try {\r
-            CollectPCDAction ca = new CollectPCDAction();\r
-            ca.perform(GlobalData.getWorkspacePath(),platformId.getFpdFile().getPath(),ActionMessage.NULL_MESSAGE_LEVEL);\r
-        } catch (Exception e){\r
-            throw new BuildException(e.getMessage());\r
-        }\r
         \r
         //\r
         // Prepare BUILD_DIR\r
@@ -359,12 +345,16 @@ public class FpdParserTask extends Task {
             Map<String, XmlObject> map = new HashMap<String, XmlObject>();\r
             map.put("PlatformSurfaceArea", doc);\r
             SurfaceAreaQuery.setDoc(map);\r
-            \r
+            SurfaceAreaQuery.getFpdUserExtension();\r
             //\r
             // Initialize\r
             //\r
             platformId = SurfaceAreaQuery.getFpdHeader();\r
             platformId.setFpdFile(fpdFile);\r
+            getProject().setProperty("PLATFORM", platformId.getName());\r
+            getProject().setProperty("PLATFORM_FILE", platformId.getRelativeFpdFile().replaceAll("(\\\\)", "/"));\r
+            getProject().setProperty("PLATFORM_DIR", platformId.getFpdFile().getParent().replaceAll("(\\\\)", "/"));\r
+            getProject().setProperty("PLATFORM_RELATIVE_DIR", platformId.getPlatformRelativeDir().replaceAll("(\\\\)", "/"));\r
 \r
             //\r
             // Build mode. User-defined output dir. \r
@@ -393,6 +383,16 @@ public class FpdParserTask extends Task {
             parseToolChainOptions();\r
 \r
             SurfaceAreaQuery.setDoc(map);\r
+            \r
+            //\r
+            // Pcd Collection. Call CollectPCDAction to collect pcd info.\r
+            //\r
+            try {\r
+                CollectPCDAction ca = new CollectPCDAction();\r
+                ca.perform(GlobalData.getWorkspacePath(),platformId.getFpdFile().getPath(),ActionMessage.NULL_MESSAGE_LEVEL);\r
+            } catch (Exception e){\r
+                throw new BuildException(e.getMessage());\r
+            }\r
         } catch (Exception e) {\r
             e.printStackTrace();\r
             throw new BuildException("Load FPD file [" + fpdFile.getPath() + "] error. \n" + e.getMessage());\r