code: def targets_to_build (self):
          
          result = []
  
          if not self.built_main_targets_:
              self.build_main_targets ()
  
          # Collect all main targets here, except for "explicit" ones.
          for n, t  in self.main_target_.iteritems ():
              if not t.name () in self.explicit_targets_:
                  result.append (t)
  
          # Collect all projects referenced via "projects-to-build" attribute.
          self_location = self.get ('location')
          for pn in self.get ('projects-to-build'):
              result.append (self.find(pn + "/"))
  
          return result
docs: Computes and returns a list of AbstractTarget instances which
              must be built when this project is built.