# Make global macros available when parsing FDF file\r
#\r
InputMacroDict.update(self.BuildDatabase.WorkspaceDb._GlobalMacros)\r
+ #\r
+ # Mark now build in AutoGen Phase\r
+ #\r
+ GlobalData.gAutoGenPhase = True \r
Fdf = FdfParser(self.FdfFile.Path)\r
Fdf.ParseFile()\r
+ GlobalData.gAutoGenPhase = False \r
PcdSet = Fdf.Profile.PcdDict\r
ModuleList = Fdf.Profile.InfList\r
self.FdfProfile = Fdf.Profile\r
from Common import EdkLogger\r
from Common.Misc import PathClass\r
from Common.String import NormPath\r
+from Common import GlobalData\r
\r
import re\r
import os\r
else:\r
FfsFileObj.FileName = self.__Token\r
if FfsFileObj.FileName.replace('$(WORKSPACE)', '').find('$') == -1:\r
- #do case sensitive check for file path\r
- ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()\r
- if ErrorCode != 0:\r
- EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)\r
+ #\r
+ # For file in OUTPUT_DIRECTORY will not check whether it exist or not at AutoGen phase.\r
+ #\r
+ if not GlobalData.gAutoGenPhase:\r
+ #do case sensitive check for file path\r
+ ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()\r
+ if ErrorCode != 0:\r
+ EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)\r
+ else:\r
+ if not InputMacroDict["OUTPUT_DIRECTORY"] in FfsFileObj.FileName:\r
+ #do case sensitive check for file path\r
+ ErrorCode, ErrorInfo = PathClass(NormPath(FfsFileObj.FileName), GenFdsGlobalVariable.WorkSpaceDir).Validate()\r
+ if ErrorCode != 0:\r
+ EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo) \r
\r
if not self.__IsToken( "}"):\r
raise Warning("expected '}'", self.FileName, self.CurrentLineNumber)\r
EdkLogger.info("No flash definition file found. FV [%s] will be ignored." % " ".join(self.FvList))\r
self.FvList = []\r
else:\r
+ #\r
+ # Mark now build in AutoGen Phase\r
+ #\r
+ GlobalData.gAutoGenPhase = True\r
FdfParserObj = FdfParser(str(self.Fdf))\r
for key in self.Db._GlobalMacros:\r
InputMacroDict[key] = self.Db._GlobalMacros[key]\r
if fvname.upper() not in FdfParserObj.Profile.FvDict.keys():\r
EdkLogger.error("build", OPTION_VALUE_INVALID,\r
"No such an FV in FDF file: %s" % fvname)\r
+ GlobalData.gAutoGenPhase = False\r
\r
#\r
# Merge Arch\r