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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

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