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:
@ -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
|
||||
|
@ -1,3 +1,3 @@
|
||||
#This file is for build version number auto generation
|
||||
#
|
||||
gBUILD_VERSION = "Build 2318"
|
||||
gBUILD_VERSION = "Build 2322"
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user