SubItem['value'] = valuestr\r
return Error\r
\r
+ def NoDscFileChange (self, OutPutFile):\r
+ NoFileChange = True\r
+ if not os.path.exists(OutPutFile):\r
+ NoFileChange = False\r
+ else:\r
+ DscTime = os.path.getmtime(self._DscFile)\r
+ OutputTime = os.path.getmtime(OutPutFile)\r
+ if DscTime > OutputTime:\r
+ NoFileChange = False\r
+ return NoFileChange\r
+\r
def CreateSplitUpdTxt (self, UpdTxtFile):\r
GuidList = ['FSP_T_UPD_TOOL_GUID','FSP_M_UPD_TOOL_GUID','FSP_S_UPD_TOOL_GUID']\r
SignatureList = ['0x545F', '0x4D5F','0x535F'] # _T, _M, and _S signature for FSPT, FSPM, FSPS\r
if UpdTxtFile == '':\r
UpdTxtFile = os.path.join(FvDir, self._MacroDict[GuidList[Index]] + '.txt')\r
\r
- ReCreate = False\r
- if not os.path.exists(UpdTxtFile):\r
- ReCreate = True\r
- else:\r
- DscTime = os.path.getmtime(self._DscFile)\r
- TxtTime = os.path.getmtime(UpdTxtFile)\r
- if DscTime > TxtTime:\r
- ReCreate = True\r
-\r
- if not ReCreate:\r
+ if (self.NoDscFileChange (UpdTxtFile)):\r
# DSC has not been modified yet\r
# So don't have to re-generate other files\r
self.Error = 'No DSC file change, skip to create UPD TXT file'\r
HeaderFile = os.path.join(FvDir, HeaderFileName)\r
\r
# Check if header needs to be recreated\r
- ReCreate = False\r
+ if (self.NoDscFileChange (HeaderFile)):\r
+ # DSC has not been modified yet\r
+ # So don't have to re-generate other files\r
+ self.Error = 'No DSC file change, skip to create UPD header file'\r
+ return 256\r
\r
TxtBody = []\r
for Item in self._CfgItemList:\r
self.Error = "BSF output file '%s' is invalid" % BsfFile\r
return 1\r
\r
+ if (self.NoDscFileChange (BsfFile)):\r
+ # DSC has not been modified yet\r
+ # So don't have to re-generate other files\r
+ self.Error = 'No DSC file change, skip to create UPD BSF file'\r
+ return 256\r
+\r
Error = 0\r
OptionDict = {}\r
BsfFd = open(BsfFile, "w")\r
\r
\r
def Usage():\r
- print ("GenCfgOpt Version 0.55")\r
+ print ("GenCfgOpt Version 0.56")\r
print ("Usage:")\r
print (" GenCfgOpt UPDTXT PlatformDscFile BuildFvDir [-D Macros]")\r
print (" GenCfgOpt HEADER PlatformDscFile BuildFvDir InputHFile [-D Macros]")\r
print ("ERROR: %s !" % (GenCfgOpt.Error))\r
return Ret\r
elif sys.argv[1] == "HEADER":\r
- if GenCfgOpt.CreateHeaderFile(OutFile) != 0:\r
- print ("ERROR: %s !" % GenCfgOpt.Error)\r
- return 8\r
+ Ret = GenCfgOpt.CreateHeaderFile(OutFile)\r
+ if Ret != 0:\r
+ # No change is detected\r
+ if Ret == 256:\r
+ print ("INFO: %s !" % (GenCfgOpt.Error))\r
+ else :\r
+ print ("ERROR: %s !" % (GenCfgOpt.Error))\r
+ return 8\r
+ return Ret\r
elif sys.argv[1] == "GENBSF":\r
- if GenCfgOpt.GenerateBsfFile(OutFile) != 0:\r
- print ("ERROR: %s !" % GenCfgOpt.Error)\r
- return 9\r
+ Ret = GenCfgOpt.GenerateBsfFile(OutFile)\r
+ if Ret != 0:\r
+ # No change is detected\r
+ if Ret == 256:\r
+ print ("INFO: %s !" % (GenCfgOpt.Error))\r
+ else :\r
+ print ("ERROR: %s !" % (GenCfgOpt.Error))\r
+ return 9\r
+ return Ret\r
else:\r
if argc < 5:\r
Usage()\r