@Override
  public GenerationItem[] generate(
      final CompileContext context,
      final GenerationItem[] items,
      final VirtualFile outputRootDirectory) {
    if (items == null || items.length <= 0) {
      return EMPTY_GENERATION_ITEM_ARRAY;
    }

    context.getProgressIndicator().setText("Compiling RenderScript files...");
    final GenerationItem[] generationItems = doGenerate(context, items, outputRootDirectory);
    final Set<VirtualFile> generatedVFiles = new HashSet<VirtualFile>();
    final HashSet<VirtualFile> visited = new HashSet<VirtualFile>();

    outputRootDirectory.refresh(false, true);
    AndroidUtils.collectFiles(outputRootDirectory, visited, generatedVFiles);

    if (context instanceof CompileContextEx) {
      ((CompileContextEx) context).markGenerated(generatedVFiles);
    }
    return generationItems;
  }