public static void process(
     CompositeGenerator generator, ModuleChunk chunk, GenerationOptions genOptions) {
   final Project project = chunk.getProject();
   final ChunkBuildExtension[] extensions =
       Extensions.getRootArea().getExtensionPoint(EP_NAME).getExtensions();
   for (ChunkBuildExtension extension : extensions) {
     extension.process(project, chunk, genOptions, generator);
   }
 }
 public static void generateAllProperties(
     final PropertyFileGenerator propertyFileGenerator,
     final Project project,
     final GenerationOptions genOptions) {
   ChunkBuildExtension[] extensions =
       Extensions.getRootArea().getExtensionPoint(EP_NAME).getExtensions();
   for (ChunkBuildExtension extension : extensions) {
     extension.generateProperties(propertyFileGenerator, project, genOptions);
   }
 }
 public static String[] getAllTargets(ModuleChunk chunk) {
   List<String> allTargets = new ArrayList<>();
   final ChunkBuildExtension[] extensions =
       Extensions.getRootArea().getExtensionPoint(EP_NAME).getExtensions();
   for (ChunkBuildExtension extension : extensions) {
     ContainerUtil.addAll(allTargets, extension.getTargets(chunk));
   }
   if (allTargets.isEmpty()) {
     allTargets.add(BuildProperties.getCompileTargetName(chunk.getName()));
   }
   return ArrayUtil.toStringArray(allTargets);
 }