]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Ecc/Ecc.py
Sync BaseTool trunk (version r2460) into EDKII BaseTools. The change mainly includes:
[mirror_edk2.git] / BaseTools / Source / Python / Ecc / Ecc.py
index 05dba2568bcc36683b50edb6bb85628f57f27fc2..ab438c7e86d561fd7857e47feb395bcfc3368d38 100644 (file)
@@ -22,13 +22,17 @@ from MetaDataParser import *
 from optparse import OptionParser\r
 from Configuration import Configuration\r
 from Check import Check\r
-from Common.InfClassObject import Inf\r
-from Common.DecClassObject import Dec\r
-from Common.DscClassObject import Dsc\r
-from Common.FdfClassObject import Fdf\r
+\r
+\r
 from Common.String import NormPath\r
 from Common.BuildVersion import gBUILD_VERSION\r
 from Common import BuildToolError\r
+\r
+from MetaFileWorkspace.MetaFileParser import DscParser\r
+from MetaFileWorkspace.MetaFileParser import DecParser\r
+from MetaFileWorkspace.MetaFileParser import InfParser\r
+from MetaFileWorkspace.MetaFileParser import Fdf\r
+from MetaFileWorkspace.MetaFileTable import MetaFileStorage\r
 import c\r
 import re, string\r
 from Exception import *\r
@@ -53,6 +57,7 @@ class Ecc(object):
         self.IsInit = True\r
         self.ScanSourceCode = True\r
         self.ScanMetaData = True\r
+        self.MetaFile = ''\r
 \r
         # Parse the options and args\r
         self.ParseOption()\r
@@ -124,7 +129,6 @@ class Ecc(object):
         for Root, Dirs, Files in os.walk(EccGlobalData.gTarget):\r
             if p.match(Root.upper()):\r
                 continue\r
-\r
             for Dir in Dirs:\r
                 Dirname = os.path.join(Root, Dir)\r
                 if os.path.islink(Dirname):\r
@@ -139,19 +143,28 @@ class Ecc(object):
                     Filename = os.path.normpath(os.path.join(Root, File))\r
                     EdkLogger.quiet("Parsing %s" % Filename)\r
                     Op.write("%s\r" % Filename)\r
-                    Dec(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
+                    #Dec(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
+                    self.MetaFile = DecParser(Filename, MODEL_FILE_DEC, EccGlobalData.gDb.TblDec)\r
+                    self.MetaFile.Start()\r
                     continue\r
                 if len(File) > 4 and File[-4:].upper() == ".DSC":\r
                     Filename = os.path.normpath(os.path.join(Root, File))\r
                     EdkLogger.quiet("Parsing %s" % Filename)\r
                     Op.write("%s\r" % Filename)\r
-                    Dsc(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
+                    #Dsc(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
+                    self.MetaFile = DscParser(Filename, MODEL_FILE_DSC, MetaFileStorage(EccGlobalData.gDb.TblDsc.Cur, Filename, MODEL_FILE_DSC, True))\r
+                    # alwasy do post-process, in case of macros change\r
+                    self.MetaFile.DoPostProcess()\r
+                    self.MetaFile.Start()\r
+                    self.MetaFile._PostProcess()\r
                     continue\r
                 if len(File) > 4 and File[-4:].upper() == ".INF":\r
                     Filename = os.path.normpath(os.path.join(Root, File))\r
                     EdkLogger.quiet("Parsing %s" % Filename)\r
                     Op.write("%s\r" % Filename)\r
-                    Inf(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
+                    #Inf(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)\r
+                    self.MetaFile = InfParser(Filename, MODEL_FILE_INF, EccGlobalData.gDb.TblInf)\r
+                    self.MetaFile.Start()\r
                     continue\r
                 if len(File) > 4 and File[-4:].upper() == ".FDF":\r
                     Filename = os.path.normpath(os.path.join(Root, File))\r