@@ -227,6 +227,12 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
227
227
sourceFile = filepath .Clean (sourceFile )
228
228
objectFile = filepath .Clean (objectFile )
229
229
dependencyFile = filepath .Clean (dependencyFile )
230
+ logger := ctx .GetLogger ()
231
+ debugLevel := ctx .DebugLevel
232
+
233
+ if debugLevel >= 20 {
234
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Checking previous results for {0} (result = {1}, dep = {2})" , sourceFile , objectFile , dependencyFile )
235
+ }
230
236
231
237
sourceFileStat , err := os .Stat (sourceFile )
232
238
if err != nil {
@@ -236,6 +242,9 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
236
242
objectFileStat , err := os .Stat (objectFile )
237
243
if err != nil {
238
244
if os .IsNotExist (err ) {
245
+ if debugLevel >= 20 {
246
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Not found: {0}" , objectFile )
247
+ }
239
248
return false , nil
240
249
} else {
241
250
return false , i18n .WrapError (err )
@@ -245,16 +254,25 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
245
254
dependencyFileStat , err := os .Stat (dependencyFile )
246
255
if err != nil {
247
256
if os .IsNotExist (err ) {
257
+ if debugLevel >= 20 {
258
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Not found: {0}" , dependencyFile )
259
+ }
248
260
return false , nil
249
261
} else {
250
262
return false , i18n .WrapError (err )
251
263
}
252
264
}
253
265
254
266
if sourceFileStat .ModTime ().After (objectFileStat .ModTime ()) {
267
+ if debugLevel >= 20 {
268
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "{0} newer than {1}" , sourceFile , objectFile )
269
+ }
255
270
return false , nil
256
271
}
257
272
if sourceFileStat .ModTime ().After (dependencyFileStat .ModTime ()) {
273
+ if debugLevel >= 20 {
274
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "{0} newer than {1}" , sourceFile , dependencyFile )
275
+ }
258
276
return false , nil
259
277
}
260
278
@@ -274,10 +292,16 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
274
292
275
293
firstRow := rows [0 ]
276
294
if ! strings .HasSuffix (firstRow , ":" ) {
295
+ if debugLevel >= 20 {
296
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "No colon in first line of depfile" )
297
+ }
277
298
return false , nil
278
299
}
279
300
objFileInDepFile := firstRow [:len (firstRow )- 1 ]
280
301
if objFileInDepFile != objectFile {
302
+ if debugLevel >= 20 {
303
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Depfile is about different file: {0}" , objFileInDepFile )
304
+ }
281
305
return false , nil
282
306
}
283
307
@@ -287,12 +311,22 @@ func ObjFileIsUpToDate(ctx *types.Context, sourceFile, objectFile, dependencyFil
287
311
if err != nil && ! os .IsNotExist (err ) {
288
312
// There is probably a parsing error of the dep file
289
313
// Ignore the error and trigger a full rebuild anyway
314
+ if debugLevel >= 20 {
315
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Failed to read: {0}" , row )
316
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , i18n .WrapError (err ).Error ())
317
+ }
290
318
return false , nil
291
319
}
292
320
if os .IsNotExist (err ) {
321
+ if debugLevel >= 20 {
322
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "Not found: {0}" , row )
323
+ }
293
324
return false , nil
294
325
}
295
326
if depStat .ModTime ().After (objectFileStat .ModTime ()) {
327
+ if debugLevel >= 20 {
328
+ logger .Fprintln (os .Stdout , constants .LOG_LEVEL_DEBUG , "{0} newer than {1}" , row , objectFile )
329
+ }
296
330
return false , nil
297
331
}
298
332
}
0 commit comments