code: def _do_validate_sources_present(self, target):
      
      if not self.validate_sources_present:
        return True
      sources = target.sources_relative_to_buildroot()
      if not sources:
        message = ('Target {} has no sources.'.format(target.address.spec))
        if not self.get_options().allow_empty:
          raise TaskError(message)
        else:
          logging.warn(message)
          return False
      return True
docs: Checks whether sources is empty, and either raises a TaskError or just returns False.
  
      The specifics of this behavior are defined by whether the user sets --allow-empty to True/False:
      --allow-empty=False will result in a TaskError being raised in the event of an empty source
      set. If --allow-empty=True, this method will just return false and log a warning.
  
      Shared for all SimpleCodegenTask subclasses to help keep errors consistent and descriptive.
  
      :param target: Target to validate.
      :return: True if sources is not empty, False otherwise.