code: public void execute(final CCTask task, final List<File> sources, final Map<String, TargetInfo> targets,
        final TargetInfo linkTarget) {
      try {
        this.projectWriter.writeProject(this.outFile, task, this, sources, targets, linkTarget);
      } catch (final BuildException ex) {
        if (this.failOnError) {
          throw ex;
        } else {
          task.log(ex.toString());
        }
      } catch (final Exception ex) {
        if (this.failOnError) {
          throw new BuildException(ex);
        } else {
          task.log(ex.toString());
        }
      }
    }
docs: Executes the task. Compiles the given files.
  
  @param task
  cc task
  @param sources
  source files (includes headers)
  @param targets
  compilation targets
  @param linkTarget
  link target