Sync BaseTool trunk (version r2474) into EDKII BaseTools.
Signed-off-by: lgao4 Reviewed-by: gikidy git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12883 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -22,12 +22,12 @@ from MetaDataParser import *
|
||||
from optparse import OptionParser
|
||||
from Configuration import Configuration
|
||||
from Check import Check
|
||||
|
||||
import Common.GlobalData as GlobalData
|
||||
|
||||
from Common.String import NormPath
|
||||
from Common.BuildVersion import gBUILD_VERSION
|
||||
from Common import BuildToolError
|
||||
|
||||
from Common.Misc import PathClass
|
||||
from MetaFileWorkspace.MetaFileParser import DscParser
|
||||
from MetaFileWorkspace.MetaFileParser import DecParser
|
||||
from MetaFileWorkspace.MetaFileParser import InfParser
|
||||
@ -61,7 +61,41 @@ class Ecc(object):
|
||||
|
||||
# Parse the options and args
|
||||
self.ParseOption()
|
||||
|
||||
#
|
||||
# Check EFI_SOURCE (Edk build convention). EDK_SOURCE will always point to ECP
|
||||
#
|
||||
WorkspaceDir = os.path.normcase(os.path.normpath(os.environ["WORKSPACE"]))
|
||||
os.environ["WORKSPACE"] = WorkspaceDir
|
||||
if "ECP_SOURCE" not in os.environ:
|
||||
os.environ["ECP_SOURCE"] = os.path.join(WorkspaceDir, GlobalData.gEdkCompatibilityPkg)
|
||||
if "EFI_SOURCE" not in os.environ:
|
||||
os.environ["EFI_SOURCE"] = os.environ["ECP_SOURCE"]
|
||||
if "EDK_SOURCE" not in os.environ:
|
||||
os.environ["EDK_SOURCE"] = os.environ["ECP_SOURCE"]
|
||||
|
||||
#
|
||||
# Unify case of characters on case-insensitive systems
|
||||
#
|
||||
EfiSourceDir = os.path.normcase(os.path.normpath(os.environ["EFI_SOURCE"]))
|
||||
EdkSourceDir = os.path.normcase(os.path.normpath(os.environ["EDK_SOURCE"]))
|
||||
EcpSourceDir = os.path.normcase(os.path.normpath(os.environ["ECP_SOURCE"]))
|
||||
|
||||
os.environ["EFI_SOURCE"] = EfiSourceDir
|
||||
os.environ["EDK_SOURCE"] = EdkSourceDir
|
||||
os.environ["ECP_SOURCE"] = EcpSourceDir
|
||||
|
||||
GlobalData.gWorkspace = WorkspaceDir
|
||||
GlobalData.gEfiSource = EfiSourceDir
|
||||
GlobalData.gEdkSource = EdkSourceDir
|
||||
GlobalData.gEcpSource = EcpSourceDir
|
||||
|
||||
GlobalData.gGlobalDefines["WORKSPACE"] = WorkspaceDir
|
||||
GlobalData.gGlobalDefines["EFI_SOURCE"] = EfiSourceDir
|
||||
GlobalData.gGlobalDefines["EDK_SOURCE"] = EdkSourceDir
|
||||
GlobalData.gGlobalDefines["ECP_SOURCE"] = EcpSourceDir
|
||||
|
||||
|
||||
# Generate checkpoints list
|
||||
EccGlobalData.gConfig = Configuration(self.ConfigFile)
|
||||
|
||||
@ -152,7 +186,7 @@ class Ecc(object):
|
||||
EdkLogger.quiet("Parsing %s" % Filename)
|
||||
Op.write("%s\r" % Filename)
|
||||
#Dsc(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb)
|
||||
self.MetaFile = DscParser(Filename, MODEL_FILE_DSC, MetaFileStorage(EccGlobalData.gDb.TblDsc.Cur, Filename, MODEL_FILE_DSC, True))
|
||||
self.MetaFile = DscParser(PathClass(Filename, Root), MODEL_FILE_DSC, MetaFileStorage(EccGlobalData.gDb.TblDsc.Cur, Filename, MODEL_FILE_DSC, True))
|
||||
# alwasy do post-process, in case of macros change
|
||||
self.MetaFile.DoPostProcess()
|
||||
self.MetaFile.Start()
|
||||
|
@ -770,13 +770,13 @@ class DscParser(MetaFileParser):
|
||||
def Start(self):
|
||||
Content = ''
|
||||
try:
|
||||
Content = open(str(self.MetaFile), 'r').readlines()
|
||||
Content = open(str(self.MetaFile.Path), 'r').readlines()
|
||||
except:
|
||||
EdkLogger.error("Parser", FILE_READ_FAILURE, ExtraData=self.MetaFile)
|
||||
#
|
||||
# Insert a record for file
|
||||
#
|
||||
Filename = NormPath(self.MetaFile)
|
||||
Filename = NormPath(self.MetaFile.Path)
|
||||
FileID = self.TblFile.GetFileId(Filename)
|
||||
if FileID:
|
||||
self.FileID = FileID
|
||||
@ -1162,6 +1162,8 @@ class DscParser(MetaFileParser):
|
||||
self._IdMapping[Id] = self._LastItem
|
||||
|
||||
RecordList = self._Table.GetAll()
|
||||
self._Table.Drop()
|
||||
self._RawTable.Drop()
|
||||
for Record in RecordList:
|
||||
EccGlobalData.gDb.TblDsc.Insert(Record[1],Record[2],Record[3],Record[4],Record[5],Record[6],Record[7],Record[8],Record[9],Record[10],Record[11],Record[12],Record[13],Record[14])
|
||||
GlobalData.gPlatformDefines.update(self._FileLocalMacros)
|
||||
@ -1300,7 +1302,7 @@ class DscParser(MetaFileParser):
|
||||
#
|
||||
elif "ECP_SOURCE" in GlobalData.gCommandLineDefines.keys():
|
||||
__IncludeMacros['ECP_SOURCE'] = GlobalData.gCommandLineDefines['ECP_SOURCE']
|
||||
|
||||
|
||||
__IncludeMacros['EFI_SOURCE'] = GlobalData.gGlobalDefines['EFI_SOURCE']
|
||||
__IncludeMacros['EDK_SOURCE'] = GlobalData.gGlobalDefines['EDK_SOURCE']
|
||||
#
|
||||
|
Reference in New Issue
Block a user