IDEA-26864: Generate Ant Build File with GWT and Artifacts don't copy files

This commit is contained in:
nik
2010-08-12 13:07:01 +04:00
parent ad3b391f9c
commit d60e9b3279
3 changed files with 25 additions and 13 deletions
@@ -15,13 +15,17 @@
*/
package com.intellij.compiler.ant;
import com.intellij.compiler.ant.taskdefs.Target;
import com.intellij.compiler.ant.artifacts.ArtifactsGenerator;
import com.intellij.compiler.ant.taskdefs.Target;
import com.intellij.openapi.compiler.CompilerBundle;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Eugene Zhuravlev
@@ -30,20 +34,17 @@ import java.io.PrintWriter;
public class CleanProject extends Generator {
private final Target myTarget;
public CleanProject(@NotNull GenerationOptions genOptions, @NotNull ArtifactsGenerator artifactsGenerator) {
StringBuffer dependencies = new StringBuffer();
public CleanProject(Project project, @NotNull GenerationOptions genOptions, @NotNull ArtifactsGenerator artifactsGenerator) {
List<String> dependencies = new ArrayList<String>();
final ModuleChunk[] chunks = genOptions.getModuleChunks();
for (int idx = 0; idx < chunks.length; idx++) {
if (idx > 0) {
dependencies.append(", ");
}
dependencies.append(BuildProperties.getModuleCleanTargetName(chunks[idx].getName()));
for (ModuleChunk chunk : chunks) {
dependencies.add(BuildProperties.getModuleCleanTargetName(chunk.getName()));
}
for (String target : artifactsGenerator.getCleanTargetNames()) {
if (dependencies.length() > 0) dependencies.append(", ");
dependencies.append(target);
dependencies.addAll(artifactsGenerator.getCleanTargetNames());
for (ChunkBuildExtension extension : ChunkBuildExtension.EP_NAME.getExtensions()) {
dependencies.addAll(extension.getCleanTargetNames(project, genOptions));
}
myTarget = new Target(BuildProperties.TARGET_CLEAN, dependencies.toString(),
myTarget = new Target(BuildProperties.TARGET_CLEAN, StringUtil.join(dependencies, ", "),
CompilerBundle.message("generated.ant.build.clean.all.task.comment"), null);
}
@@ -61,6 +61,9 @@ public abstract class ProjectBuild extends Generator {
}
}
}
for (ChunkBuildExtension extension : ChunkBuildExtension.EP_NAME.getExtensions()) {
extension.generateProjectTargets(project, genOptions, myAntProject);
}
final Target initTarget = new Target(BuildProperties.TARGET_INIT, null,
CompilerBundle.message("generated.ant.build.initialization.section.title"), null);
@@ -69,7 +72,7 @@ public abstract class ProjectBuild extends Generator {
ArtifactsGenerator artifactsGenerator = new ArtifactsGenerator(project, genOptions);
myAntProject.add(new CleanProject(genOptions, artifactsGenerator), 1);
myAntProject.add(new CleanProject(project, genOptions, artifactsGenerator), 1);
myAntProject.add(new Target(BuildProperties.TARGET_BUILD_MODULES, buildModulesTargetNames.toString(),
CompilerBundle.message("generated.ant.build.build.all.modules.target.name"), null), 1);
@@ -26,6 +26,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public abstract class ChunkBuildExtension {
@@ -37,9 +38,16 @@ public abstract class ChunkBuildExtension {
public abstract void process(Project project, ModuleChunk chunk, GenerationOptions genOptions, CompositeGenerator generator);
public void generateProjectTargets(Project project, GenerationOptions genOptions, CompositeGenerator generator) {
}
public void generateProperties(final PropertyFileGenerator generator, final Project project, final GenerationOptions options) {
}
public List<String> getCleanTargetNames(Project project, GenerationOptions genOptions) {
return Collections.emptyList();
}
public static String[] getAllTargets(ModuleChunk chunk) {
List<String> allTargets = new ArrayList<String>();
final ChunkBuildExtension[] extensions = Extensions.getRootArea().getExtensionPoint(EP_NAME).getExtensions();