REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3107
Current script only compares main DSC and output file datetime
to determine if re-generation required or not.
When UPD defined in sub DSC and was modified current script cannot
detect and will not re-generate output files which caused incremental
build issue.
Since UPD can be defined in any sub DSC the script has been updated
to compare all DSC datetime with output files to determine re-generation
is needed or not.
Cc: Maurice Ma <maurice.ma@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
IntelFsp2Pkg/Tools/GenCfgOpt.py | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py b/IntelFsp2Pkg/Tools/GenCfgOpt.py
index af7e14a10a..a0b8bba81e 100644
--- a/IntelFsp2Pkg/Tools/GenCfgOpt.py
+++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py
@@ -313,6 +313,7 @@ EndList
self._DscFile = ''
self._FvDir = ''
self._MapVer = 0
+ self._DscTime = 0
def ParseMacros (self, MacroDefStr):
# ['-DABC=1', '-D', 'CFG_DEBUG=1', '-D', 'CFG_OUTDIR=Build']
@@ -423,6 +424,9 @@ EndList
self._DscFile = DscFile
self._FvDir = FvDir
+ # Initial DSC time is parent DSC time.
+ self._DscTime = os.path.getmtime(DscFile)
+
IsDefSect = False
IsPcdSect = False
IsUpdSect = False
@@ -530,6 +534,12 @@ EndList
if IncludeDsc == None:
print("ERROR: Cannot open file '%s'" % IncludeFilePath)
raise SystemExit
+
+ # Update DscTime when newer DSC time found.
+ CurrentDscTime = os.path.getmtime(os.path.realpath(IncludeDsc.name))
+ if CurrentDscTime > self._DscTime:
+ self._DscTime = CurrentDscTime
+
NewDscLines = IncludeDsc.readlines()
IncludeDsc.close()
DscLines = NewDscLines + DscLines
@@ -815,9 +825,8 @@ EndList
if not os.path.exists(OutPutFile):
NoFileChange = False
else:
- DscTime = os.path.getmtime(self._DscFile)
OutputTime = os.path.getmtime(OutPutFile)
- if DscTime > OutputTime:
+ if self._DscTime > OutputTime:
NoFileChange = False
return NoFileChange
--
2.28.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68417): https://edk2.groups.io/g/devel/message/68417
Mute This Topic: https://groups.io/mt/78794912/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Star Zeng <star.zeng@intel.com> -----Original Message----- From: Chasel Chiu <chasel.chiu@intel.com> Sent: Tuesday, December 8, 2020 10:16 AM To: devel@edk2.groups.io Cc: Chiu, Chasel <chasel.chiu@intel.com>; Ma, Maurice <maurice.ma@intel.com>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com> Subject: [PATCH] IntelFsp2Pkg/GenCfgOpt.py: Incremental build with UPD in sub DSC. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3107 Current script only compares main DSC and output file datetime to determine if re-generation required or not. When UPD defined in sub DSC and was modified current script cannot detect and will not re-generate output files which caused incremental build issue. Since UPD can be defined in any sub DSC the script has been updated to compare all DSC datetime with output files to determine re-generation is needed or not. Cc: Maurice Ma <maurice.ma@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Cc: Star Zeng <star.zeng@intel.com> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com> --- IntelFsp2Pkg/Tools/GenCfgOpt.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py b/IntelFsp2Pkg/Tools/GenCfgOpt.py index af7e14a10a..a0b8bba81e 100644 --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py @@ -313,6 +313,7 @@ EndList self._DscFile = '' self._FvDir = '' self._MapVer = 0 + self._DscTime = 0 def ParseMacros (self, MacroDefStr): # ['-DABC=1', '-D', 'CFG_DEBUG=1', '-D', 'CFG_OUTDIR=Build'] @@ -423,6 +424,9 @@ EndList self._DscFile = DscFile self._FvDir = FvDir + # Initial DSC time is parent DSC time. + self._DscTime = os.path.getmtime(DscFile) + IsDefSect = False IsPcdSect = False IsUpdSect = False @@ -530,6 +534,12 @@ EndList if IncludeDsc == None: print("ERROR: Cannot open file '%s'" % IncludeFilePath) raise SystemExit + + # Update DscTime when newer DSC time found. + CurrentDscTime = os.path.getmtime(os.path.realpath(IncludeDsc.name)) + if CurrentDscTime > self._DscTime: + self._DscTime = CurrentDscTime + NewDscLines = IncludeDsc.readlines() IncludeDsc.close() DscLines = NewDscLines + DscLines @@ -815,9 +825,8 @@ EndList if not os.path.exists(OutPutFile): NoFileChange = False else: - DscTime = os.path.getmtime(self._DscFile) OutputTime = os.path.getmtime(OutPutFile) - if DscTime > OutputTime: + if self._DscTime > OutputTime: NoFileChange = False return NoFileChange -- 2.28.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#68545): https://edk2.groups.io/g/devel/message/68545 Mute This Topic: https://groups.io/mt/78794912/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com> > -----Original Message----- > From: Chasel Chiu <chasel.chiu@intel.com> > Sent: Monday, December 7, 2020 6:16 PM > To: devel@edk2.groups.io > Cc: Chiu, Chasel <chasel.chiu@intel.com>; Ma, Maurice > <maurice.ma@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com> > Subject: [PATCH] IntelFsp2Pkg/GenCfgOpt.py: Incremental build with UPD in > sub DSC. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3107 > > Current script only compares main DSC and output file datetime to > determine if re-generation required or not. > When UPD defined in sub DSC and was modified current script cannot detect > and will not re-generate output files which caused incremental build issue. > > Since UPD can be defined in any sub DSC the script has been updated to > compare all DSC datetime with output files to determine re-generation is > needed or not. > > Cc: Maurice Ma <maurice.ma@intel.com> > Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> > Cc: Star Zeng <star.zeng@intel.com> > Signed-off-by: Chasel Chiu <chasel.chiu@intel.com> > --- > IntelFsp2Pkg/Tools/GenCfgOpt.py | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py > b/IntelFsp2Pkg/Tools/GenCfgOpt.py index af7e14a10a..a0b8bba81e 100644 > --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py > +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py > @@ -313,6 +313,7 @@ EndList > self._DscFile = '' self._FvDir = '' self._MapVer = 0+ > self._DscTime = 0 def ParseMacros (self, MacroDefStr): # ['-DABC=1', > '-D', 'CFG_DEBUG=1', '-D', 'CFG_OUTDIR=Build']@@ -423,6 +424,9 @@ > EndList > self._DscFile = DscFile self._FvDir = FvDir + # Initial DSC time > is parent DSC time.+ self._DscTime = os.path.getmtime(DscFile)+ > IsDefSect = False IsPcdSect = False IsUpdSect = False@@ - > 530,6 +534,12 @@ EndList > if IncludeDsc == None: > print("ERROR: Cannot open file '%s'" % IncludeFilePath) > raise SystemExit++ # Update DscTime when newer DSC > time found.+ CurrentDscTime = > os.path.getmtime(os.path.realpath(IncludeDsc.name))+ > if CurrentDscTime > self._DscTime:+ self._DscTime = > CurrentDscTime+ NewDscLines = IncludeDsc.readlines() > IncludeDsc.close() DscLines = NewDscLines + > DscLines@@ -815,9 +825,8 @@ EndList > if not os.path.exists(OutPutFile): NoFileChange = False else:- > DscTime = os.path.getmtime(self._DscFile) OutputTime = > os.path.getmtime(OutPutFile)- if DscTime > OutputTime:+ if > self._DscTime > OutputTime: NoFileChange = False return > NoFileChange -- > 2.28.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#68540): https://edk2.groups.io/g/devel/message/68540 Mute This Topic: https://groups.io/mt/78794912/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Yuwei Chen <yuwei.chen@intel.com> Tested-by: Yuwei Chen <yuwei.chen@intel.com> > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chiu, > Chasel > Sent: Tuesday, December 8, 2020 10:16 AM > To: devel@edk2.groups.io > Cc: Chiu, Chasel <chasel.chiu@intel.com>; Ma, Maurice > <maurice.ma@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com> > Subject: [edk2-devel] [PATCH] IntelFsp2Pkg/GenCfgOpt.py: Incremental > build with UPD in sub DSC. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3107 > > Current script only compares main DSC and output file datetime to > determine if re-generation required or not. > When UPD defined in sub DSC and was modified current script cannot detect > and will not re-generate output files which caused incremental build issue. > > Since UPD can be defined in any sub DSC the script has been updated to > compare all DSC datetime with output files to determine re-generation is > needed or not. > > Cc: Maurice Ma <maurice.ma@intel.com> > Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> > Cc: Star Zeng <star.zeng@intel.com> > Signed-off-by: Chasel Chiu <chasel.chiu@intel.com> > --- > IntelFsp2Pkg/Tools/GenCfgOpt.py | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py > b/IntelFsp2Pkg/Tools/GenCfgOpt.py index af7e14a10a..a0b8bba81e 100644 > --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py > +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py > @@ -313,6 +313,7 @@ EndList > self._DscFile = '' self._FvDir = '' self._MapVer = 0+ > self._DscTime = 0 def ParseMacros (self, MacroDefStr): # ['-DABC=1', > '-D', 'CFG_DEBUG=1', '-D', 'CFG_OUTDIR=Build']@@ -423,6 +424,9 @@ > EndList > self._DscFile = DscFile self._FvDir = FvDir + # Initial DSC time > is parent DSC time.+ self._DscTime = os.path.getmtime(DscFile)+ > IsDefSect = False IsPcdSect = False IsUpdSect = False@@ - > 530,6 +534,12 @@ EndList > if IncludeDsc == None: > print("ERROR: Cannot open file '%s'" % IncludeFilePath) > raise SystemExit++ # Update DscTime when newer DSC > time found.+ CurrentDscTime = > os.path.getmtime(os.path.realpath(IncludeDsc.name))+ > if CurrentDscTime > self._DscTime:+ self._DscTime = > CurrentDscTime+ NewDscLines = IncludeDsc.readlines() > IncludeDsc.close() DscLines = NewDscLines + > DscLines@@ -815,9 +825,8 @@ EndList > if not os.path.exists(OutPutFile): NoFileChange = False else:- > DscTime = os.path.getmtime(self._DscFile) OutputTime = > os.path.getmtime(OutPutFile)- if DscTime > OutputTime:+ if > self._DscTime > OutputTime: NoFileChange = False return > NoFileChange -- > 2.28.0.windows.1 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#68417): https://edk2.groups.io/g/devel/message/68417 > Mute This Topic: https://groups.io/mt/78794912/4546272 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [yuwei.chen@intel.com] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#68430): https://edk2.groups.io/g/devel/message/68430 Mute This Topic: https://groups.io/mt/78794912/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.