]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/BuildReport.py
BaseTools: Add LogAgent to support multiple process Autogen
[mirror_edk2.git] / BaseTools / Source / Python / build / BuildReport.py
index 13b04acb7572771641ef5280560838ca0a825110..9c12c01d2a2a86b9b5a569c6d459cc320149e40c 100644 (file)
@@ -5,13 +5,7 @@
 # build all target completes successfully.\r
 #\r
 # Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
-# 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
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
 #\r
 \r
 ## Import Modules\r
@@ -40,7 +34,7 @@ from Common.BuildToolError import FORMAT_INVALID
 from Common.LongFilePathSupport import OpenLongFilePath as open\r
 from Common.MultipleWorkspace import MultipleWorkspace as mws\r
 import Common.GlobalData as GlobalData\r
-from AutoGen.AutoGen import ModuleAutoGen\r
+from AutoGen.ModuleAutoGen import ModuleAutoGen\r
 from Common.Misc import PathClass\r
 from Common.StringUtils import NormPath\r
 from Common.DataType import *\r
@@ -564,6 +558,7 @@ class ModuleReport(object):
     def __init__(self, M, ReportType):\r
         self.ModuleName = M.Module.BaseName\r
         self.ModuleInfPath = M.MetaFile.File\r
+        self.ModuleArch = M.Arch\r
         self.FileGuid = M.Guid\r
         self.Size = 0\r
         self.BuildTimeStamp = None\r
@@ -626,7 +621,7 @@ class ModuleReport(object):
     def GenerateReport(self, File, GlobalPcdReport, GlobalPredictionReport, GlobalDepexParser, ReportType):\r
         FileWrite(File, gSectionStart)\r
 \r
-        FwReportFileName = os.path.join(self._BuildDir, "DEBUG", self.ModuleName + ".txt")\r
+        FwReportFileName = os.path.join(self._BuildDir, "OUTPUT", self.ModuleName + ".txt")\r
         if os.path.isfile(FwReportFileName):\r
             try:\r
                 FileContents = open(FwReportFileName).read()\r
@@ -674,6 +669,7 @@ class ModuleReport(object):
 \r
         FileWrite(File, "Module Summary")\r
         FileWrite(File, "Module Name:          %s" % self.ModuleName)\r
+        FileWrite(File, "Module Arch:          %s" % self.ModuleArch)\r
         FileWrite(File, "Module INF Path:      %s" % self.ModuleInfPath)\r
         FileWrite(File, "File GUID:            %s" % self.FileGuid)\r
         if self.Size:\r
@@ -1118,20 +1114,13 @@ class PcdReport(object):
                                     SkuList = sorted(Pcd.SkuInfoList.keys())\r
                                     for Sku in SkuList:\r
                                         SkuInfo = Pcd.SkuInfoList[Sku]\r
-                                        if TypeName in ('DYNHII', 'DEXHII'):\r
-                                            if SkuInfo.DefaultStoreDict:\r
-                                                DefaultStoreList = sorted(SkuInfo.DefaultStoreDict.keys())\r
-                                                for DefaultStore in DefaultStoreList:\r
-                                                    OverrideValues = Pcd.SkuOverrideValues[Sku]\r
-                                                    DscOverride = self.ParseStruct(OverrideValues[DefaultStore])\r
-                                                    if DscOverride:\r
-                                                        break\r
-                                        else:\r
-                                            OverrideValues = Pcd.SkuOverrideValues[Sku]\r
-                                            if OverrideValues:\r
-                                                Keys = list(OverrideValues.keys())\r
-                                                OverrideFieldStruct = self.OverrideFieldValue(Pcd, OverrideValues[Keys[0]])\r
-                                                DscOverride = self.ParseStruct(OverrideFieldStruct)\r
+                                        if SkuInfo.DefaultStoreDict:\r
+                                            DefaultStoreList = sorted(SkuInfo.DefaultStoreDict.keys())\r
+                                            for DefaultStore in DefaultStoreList:\r
+                                                OverrideValues = Pcd.SkuOverrideValues[Sku]\r
+                                                DscOverride = self.ParseStruct(OverrideValues[DefaultStore])\r
+                                                if DscOverride:\r
+                                                    break\r
                                         if DscOverride:\r
                                             break\r
                         if DscOverride:\r
@@ -1295,7 +1284,10 @@ class PcdReport(object):
                 FileWrite(File, ' %-*s   : %6s %10s = %s' % (self.MaxLen, Flag + ' ' + PcdTokenCName, TypeName, '(' + Pcd.DatumType + ')', Value))\r
             if IsStructure:\r
                 FiledOverrideFlag = False\r
-                OverrideValues = Pcd.SkuOverrideValues\r
+                if (Pcd.TokenCName,Pcd.TokenSpaceGuidCName) in GlobalData.gPcdSkuOverrides:\r
+                    OverrideValues = GlobalData.gPcdSkuOverrides[(Pcd.TokenCName,Pcd.TokenSpaceGuidCName)]\r
+                else:\r
+                    OverrideValues = Pcd.SkuOverrideValues\r
                 if OverrideValues:\r
                     for Data in OverrideValues.values():\r
                         Struct = list(Data.values())\r
@@ -2150,7 +2142,7 @@ class PlatformReport(object):
                         INFList = GlobalData.gFdfParser.Profile.InfDict[Pa.Arch]\r
                         for InfName in INFList:\r
                             InfClass = PathClass(NormPath(InfName), Wa.WorkspaceDir, Pa.Arch)\r
-                            Ma = ModuleAutoGen(Wa, InfClass, Pa.BuildTarget, Pa.ToolChain, Pa.Arch, Wa.MetaFile)\r
+                            Ma = ModuleAutoGen(Wa, InfClass, Pa.BuildTarget, Pa.ToolChain, Pa.Arch, Wa.MetaFile,Pa.DataPile)\r
                             if Ma is None:\r
                                 continue\r
                             if Ma not in ModuleAutoGenList:\r