Sync BaseTools Branch (version r2323) to EDKII main trunk.

Signed-off-by: lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12379 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2011-09-19 09:03:59 +00:00
parent 65fd395218
commit df692f024b
34 changed files with 31 additions and 6 deletions

View File

@ -207,8 +207,13 @@ class WorkspaceAutoGen(AutoGen):
# Make global macros available when parsing FDF file
#
InputMacroDict.update(self.BuildDatabase.WorkspaceDb._GlobalMacros)
#
# Mark now build in AutoGen Phase
#
GlobalData.gAutoGenPhase = True
Fdf = FdfParser(self.FdfFile.Path)
Fdf.ParseFile()
GlobalData.gAutoGenPhase = False
PcdSet = Fdf.Profile.PcdDict
ModuleList = Fdf.Profile.InfList
self.FdfProfile = Fdf.Profile

View File

@ -1,3 +1,3 @@
#This file is for build version number auto generation
#
gBUILD_VERSION = "Build 2318"
gBUILD_VERSION = "Build 2322"

View File

@ -34,3 +34,7 @@ gBuildingModule = ''
## Regular expression for matching macro used in DSC/DEC/INF file inclusion
gMacroPattern = re.compile("\$\(([_A-Z][_A-Z0-9]*)\)", re.UNICODE)
#
# A global variable for whether current build in AutoGen phase or not.
#
gAutoGenPhase = False

View File

@ -45,6 +45,7 @@ from Common.BuildToolError import *
from Common import EdkLogger
from Common.Misc import PathClass
from Common.String import NormPath
from Common import GlobalData
import re
import os
@ -2416,10 +2417,20 @@ class FdfParser:
else:
FfsFileObj.FileName = self.__Token
if FfsFileObj.FileName.replace('$(WORKSPACE)', '').find('$') == -1:
#do case sensitive check for file path
ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
if ErrorCode != 0:
EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
#
# For file in OUTPUT_DIRECTORY will not check whether it exist or not at AutoGen phase.
#
if not GlobalData.gAutoGenPhase:
#do case sensitive check for file path
ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
if ErrorCode != 0:
EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
else:
if not InputMacroDict["OUTPUT_DIRECTORY"] in FfsFileObj.FileName:
#do case sensitive check for file path
ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()
if ErrorCode != 0:
EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)
if not self.__IsToken( "}"):
raise Warning("expected '}'", self.FileName, self.CurrentLineNumber)

View File

@ -912,6 +912,10 @@ class Build():
EdkLogger.info("No flash definition file found. FV [%s] will be ignored." % " ".join(self.FvList))
self.FvList = []
else:
#
# Mark now build in AutoGen Phase
#
GlobalData.gAutoGenPhase = True
FdfParserObj = FdfParser(str(self.Fdf))
for key in self.Db._GlobalMacros:
InputMacroDict[key] = self.Db._GlobalMacros[key]
@ -920,6 +924,7 @@ class Build():
if fvname.upper() not in FdfParserObj.Profile.FvDict.keys():
EdkLogger.error("build", OPTION_VALUE_INVALID,
"No such an FV in FDF file: %s" % fvname)
GlobalData.gAutoGenPhase = False
#
# Merge Arch