protected int checkForChangedIncludeFiles ( final Map < String , TargetInfo > targets ) { int potentialTargets = 0 ; int definiteTargets = 0 ; Iterator < TargetInfo > targetEnum = targets . values ( ) . iterator ( ) ; while ( targetEnum . hasNext ( ) ) { final TargetInfo target = targetEnum . next ( ) ; if ( ! target . getRebuild ( ) ) { potentialTargets ++ ; } else { definiteTargets ++ ; } } // // If there were remaining targets that // might be out of date // if ( potentialTargets > 0 ) { log ( "Starting dependency analysis for " + Integer . toString ( potentialTargets ) + " files." ) ; final DependencyTable dependencyTable = new DependencyTable ( this . _objDir ) ; try { dependencyTable . load ( ) ; } catch ( final Exception ex ) { log ( "Problem reading dependencies.xml: " + ex . toString ( ) ) ; } targetEnum = targets . values ( ) . iterator ( ) ; while ( targetEnum . hasNext ( ) ) { final TargetInfo target = targetEnum . next ( ) ; if ( ! target . getRebuild ( ) && dependencyTable . needsRebuild ( this , target , this . dependencyDepth ) ) { target . mustRebuild ( ) ; } } dependencyTable . commit ( this ) ; } // // count files being rebuilt now // int currentTargets = 0 ; targetEnum = targets . values ( ) . iterator ( ) ; while ( targetEnum . hasNext ( ) ) { final TargetInfo target = targetEnum . next ( ) ; if ( target . getRebuild ( ) ) { currentTargets ++ ; } } if ( potentialTargets > 0 ) { log ( Integer . toString ( potentialTargets - currentTargets + definiteTargets ) + " files are up to date." ) ; log ( Integer . toString ( currentTargets - definiteTargets ) + " files to be recompiled from dependency analysis." ) ; } log ( Integer . toString ( currentTargets ) + " total files to be compiled." ) ; return currentTargets ; }
Checks all targets that are not forced to be rebuilt or are missing object files to be checked for modified include files