Sync EDKII BaseTools to BaseTools project r1911.
[efi/edk2/.git] / edk2 / BaseTools / Source / Python / build / BuildReport.py
index 23e819e..eac21d1 100644 (file)
@@ -667,31 +667,31 @@ class PcdReport(object):
                         if DecDefaultValue == None:\r
                             DecMatch = True\r
                         else:\r
-                            DecMatch = (DecDefaultValue == PcdValue)\r
+                            DecMatch = (DecDefaultValue.strip() == PcdValue.strip())\r
 \r
                         if InfDefaultValue == None:\r
                             InfMatch = True\r
                         else:\r
-                            InfMatch = (InfDefaultValue == PcdValue)\r
+                            InfMatch = (InfDefaultValue.strip() == PcdValue.strip())\r
 \r
                         if DscDefaultValue == None:\r
                             DscMatch = True\r
                         else:\r
-                            DscMatch = (DscDefaultValue == PcdValue)\r
+                            DscMatch = (DscDefaultValue.strip() == PcdValue.strip())\r
 \r
                     #\r
                     # Report PCD item according to their override relationship\r
                     #\r
                     if DecMatch and InfMatch:\r
-                        FileWrite(File, '    %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue))\r
+                        FileWrite(File, '    %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue.strip()))\r
                     else:\r
                         if DscMatch:\r
                             if (Pcd.TokenCName, Key) in self.FdfPcdSet:\r
-                                FileWrite(File, ' *F %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue))\r
+                                FileWrite(File, ' *F %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue.strip()))\r
                             else:\r
-                                FileWrite(File, ' *P %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue))\r
+                                FileWrite(File, ' *P %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue.strip()))\r
                         else:\r
-                            FileWrite(File, ' *M %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue))\r
+                            FileWrite(File, ' *M %-*s: %6s %10s = %-22s' % (self.MaxLen, Pcd.TokenCName, TypeName, '('+Pcd.DatumType+')', PcdValue.strip()))\r
                     \r
                     if TypeName in ('DYNHII', 'DEXHII', 'DYNVPD', 'DEXVPD'):\r
                         for SkuInfo in Pcd.SkuInfoList.values():\r
@@ -701,13 +701,13 @@ class PcdReport(object):
                                 FileWrite(File, '%*s' % (self.MaxLen + 4, SkuInfo.VpdOffset))\r
                                \r
                     if not DscMatch and DscDefaultValue != None:\r
-                        FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'DSC DEFAULT', DscDefaultValue))\r
+                        FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'DSC DEFAULT', DscDefaultValue.strip()))\r
 \r
                     if not InfMatch and InfDefaultValue != None:\r
-                        FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'INF DEFAULT', InfDefaultValue))\r
+                        FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'INF DEFAULT', InfDefaultValue.strip()))\r
 \r
                     if not DecMatch and DecDefaultValue != None:\r
-                        FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'DEC DEFAULT', DecDefaultValue))\r
+                        FileWrite(File, '    %*s = %s' % (self.MaxLen + 19, 'DEC DEFAULT', DecDefaultValue.strip()))\r
 \r
                     if ModulePcdSet == None:\r
                         ModuleOverride = self.ModulePcdOverride.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName), {})\r
@@ -717,10 +717,10 @@ class PcdReport(object):
                                 ModulePcdDefaultValueNumber = int(ModuleDefault.strip(), 0)\r
                                 Match = (ModulePcdDefaultValueNumber == PcdValueNumber)\r
                             else:\r
-                                Match = (ModuleDefault == PcdValue)\r
+                                Match = (ModuleDefault.strip() == PcdValue.strip())\r
                             if Match:\r
                                 continue\r
-                            FileWrite(File, ' *M %-*s = %s' % (self.MaxLen + 19, ModulePath, ModuleDefault))\r
+                            FileWrite(File, ' *M %-*s = %s' % (self.MaxLen + 19, ModulePath, ModuleDefault.strip()))\r
 \r
         if ModulePcdSet == None:\r
             FileWrite(File, gSectionEnd)\r
@@ -1283,8 +1283,9 @@ class PlatformReport(object):
     #\r
     # @param self            The object pointer\r
     # @param Wa              Workspace context information\r
+    # @param MaList          The list of modules in the platform build\r
     #\r
-    def __init__(self, Wa, ReportType):\r
+    def __init__(self, Wa, MaList, ReportType):\r
         self._WorkspaceDir = Wa.WorkspaceDir\r
         self.PlatformName = Wa.Name\r
         self.PlatformDscPath = Wa.Platform\r
@@ -1299,7 +1300,7 @@ class PlatformReport(object):
             self.PcdReport = PcdReport(Wa)\r
 \r
         self.FdReportList = []\r
-        if "FLASH" in ReportType and Wa.FdfProfile:\r
+        if "FLASH" in ReportType and Wa.FdfProfile and MaList == None:\r
             for Fd in Wa.FdfProfile.FdDict:\r
                 self.FdReportList.append(FdReport(Wa.FdfProfile.FdDict[Fd], Wa))\r
 \r
@@ -1308,9 +1309,13 @@ class PlatformReport(object):
             self.PredictionReport = PredictionReport(Wa)\r
 \r
         self.ModuleReportList = []\r
-        for Pa in Wa.AutoGenObjectList:\r
-            for ModuleKey in Pa.Platform.Modules:\r
-                self.ModuleReportList.append(ModuleReport(Pa.Platform.Modules[ModuleKey].M, ReportType))\r
+        if MaList != None:\r
+            for Ma in MaList:\r
+                self.ModuleReportList.append(ModuleReport(Ma, ReportType))\r
+        else:\r
+            for Pa in Wa.AutoGenObjectList:\r
+                for ModuleKey in Pa.Platform.Modules:\r
+                    self.ModuleReportList.append(ModuleReport(Pa.Platform.Modules[ModuleKey].M, ReportType))\r
 \r
 \r
 \r
@@ -1386,10 +1391,11 @@ class BuildReport(object):
     #\r
     # @param self            The object pointer\r
     # @param Wa              Workspace context information\r
+    # @param MaList          The list of modules in the platform build\r
     #\r
-    def AddPlatformReport(self, Wa):\r
+    def AddPlatformReport(self, Wa, MaList=None):\r
         if self.ReportFile:\r
-            self.ReportList.append(Wa)\r
+            self.ReportList.append((Wa, MaList))\r
 \r
     ##\r
     # Generates the final report.\r
@@ -1407,8 +1413,8 @@ class BuildReport(object):
             except IOError:\r
                 EdkLogger.error(None, FILE_OPEN_FAILURE, ExtraData=self.ReportFile)\r
             try:\r
-                for Wa in self.ReportList:\r
-                    PlatformReport(Wa, self.ReportType).GenerateReport(File, BuildDuration, self.ReportType)\r
+                for (Wa, MaList) in self.ReportList:\r
+                    PlatformReport(Wa, MaList, self.ReportType).GenerateReport(File, BuildDuration, self.ReportType)\r
                 EdkLogger.quiet("Report successfully saved to %s" % os.path.abspath(self.ReportFile))\r
             except IOError:\r
                 EdkLogger.error(None, FILE_WRITE_FAILURE, ExtraData=self.ReportFile)\r