@@ -194,6 +194,12 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
194
194
sourceFile = filepath .Clean (sourceFile )
195
195
objectFile = filepath .Clean (objectFile )
196
196
dependencyFile = filepath .Clean (dependencyFile )
197
+ logger := ctx .GetLogger ()
198
+ debugLevel := ctx .DebugLevel
199
+
200
+ if debugLevel >= 20 {
201
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Checking previous results for {0} (result = {1}, dep = {2})" , sourceFile , objectFile , dependencyFile )
202
+ }
197
203
198
204
sourceFileStat , err := os .Stat (sourceFile )
199
205
if err != nil {
@@ -203,6 +209,9 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
203
209
objectFileStat , err := os .Stat (objectFile )
204
210
if err != nil {
205
211
if os .IsNotExist (err ) {
212
+ if debugLevel >= 20 {
213
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Not found: {0}" , objectFile )
214
+ }
206
215
return false , nil
207
216
} else {
208
217
return false , i18n .WrapError (err )
@@ -212,16 +221,25 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
212
221
dependencyFileStat , err := os .Stat (dependencyFile )
213
222
if err != nil {
214
223
if os .IsNotExist (err ) {
224
+ if debugLevel >= 20 {
225
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Not found: {0}" , dependencyFile )
226
+ }
215
227
return false , nil
216
228
} else {
217
229
return false , i18n .WrapError (err )
218
230
}
219
231
}
220
232
221
233
if sourceFileStat .ModTime ().After (objectFileStat .ModTime ()) {
234
+ if debugLevel >= 20 {
235
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "{0} newer than {1}" , sourceFile , objectFile )
236
+ }
222
237
return false , nil
223
238
}
224
239
if sourceFileStat .ModTime ().After (dependencyFileStat .ModTime ()) {
240
+ if debugLevel >= 20 {
241
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "{0} newer than {1}" , sourceFile , dependencyFile )
242
+ }
225
243
return false , nil
226
244
}
227
245
@@ -241,10 +259,16 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
241
259
242
260
firstRow := rows [0 ]
243
261
if ! strings .HasSuffix (firstRow , ":" ) {
262
+ if debugLevel >= 20 {
263
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "No colon in first line of depfile" )
264
+ }
244
265
return false , nil
245
266
}
246
267
objFileInDepFile := firstRow [:len (firstRow )- 1 ]
247
268
if objFileInDepFile != objectFile {
269
+ if debugLevel >= 20 {
270
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Depfile is about different file: {0}" , objFileInDepFile )
271
+ }
248
272
return false , nil
249
273
}
250
274
@@ -254,12 +278,22 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
254
278
if err != nil && ! os .IsNotExist (err ) {
255
279
// There is probably a parsing error of the dep file
256
280
// Ignore the error and trigger a full rebuild anyway
281
+ if debugLevel >= 20 {
282
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Failed to read: {0}" , row )
283
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , i18n .WrapError (err ).Error ())
284
+ }
257
285
return false , nil
258
286
}
259
287
if os .IsNotExist (err ) {
288
+ if debugLevel >= 20 {
289
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Not found: {0}" , row )
290
+ }
260
291
return false , nil
261
292
}
262
293
if depStat .ModTime ().After (objectFileStat .ModTime ()) {
294
+ if debugLevel >= 20 {
295
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "{0} newer than {1}" , row , objectFile )
296
+ }
263
297
return false , nil
264
298
}
265
299
}
0 commit comments