|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
--- com.redhat.eclipse.cdt.autotools/src/com/redhat/eclipse/cdt/autotools/AutotoolsMakefileBuilder.java.fix 2006-08-08 14:47:55.000000000 -0400
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+++ com.redhat.eclipse.cdt.autotools/src/com/redhat/eclipse/cdt/autotools/AutotoolsMakefileBuilder.java 2006-08-08 14:48:25.000000000 -0400
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
@@ -18,12 +18,19 @@ import java.util.Vector;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.cdt.make.core.IMakeBuilderInfo;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.cdt.make.core.MakeCorePlugin;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.cdt.managedbuilder.internal.core.GeneratedMakefileBuilder;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.cdt.managedbuilder.internal.core.ManagedBuildInfo;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.core.resources.ICommand;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.core.resources.IProject;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.core.resources.IProjectDescription;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.core.runtime.CoreException;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
import org.eclipse.core.runtime.IProgressMonitor;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+import org.eclipse.core.runtime.NullProgressMonitor;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
* This is the incremental builder associated with a managed build project. It dynamically
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
@@ -34,6 +41,8 @@ import org.eclipse.core.runtime.IProgres
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
public class AutotoolsMakefileBuilder extends GeneratedMakefileBuilder {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
public static final String BUILDER_NAME = "genmakebuilder"; //$NON-NLS-1$
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
public static final String BUILDER_ID = AutotoolsPlugin.getUniqueIdentifier() + "." + BUILDER_NAME; //$NON-NLS-1$
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ public static final String MANAGED_BUILDER_ID = ManagedBuilderCorePlugin.getUniqueIdentifier() + "." + BUILDER_NAME; //$NON-NLS-1$
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ public static final String AUTOTOOLS_CONFIG_ID = AutotoolsPlugin.getUniqueIdentifier() + ".configuration1"; //$NON-NLS-1$
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
private IMakeBuilderInfo info;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
@@ -46,16 +55,21 @@ public class AutotoolsMakefileBuilder ex
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
IProjectDescription description = project.getDescription();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
ICommand[] commands = description.getBuildSpec();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- // TODO Remove this when the new StandardBuild nature adds the cbuilder
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // TODO Remove the cbuilder check when the new StandardBuild nature adds the cbuilder
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
for (int i = 0; i < commands.length; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
ICommand command = commands[i];
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- if (command.getBuilderName().equals("org.eclipse.cdt.core.cbuilder")) { //$NON-NLS-1$
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ String builderName = command.getBuilderName();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // If there is a ManagedMake makefile generator, remove it as it will
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // cause an additional build "all" to occur when we are making any target.
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ if (builderName.equals("org.eclipse.cdt.core.cbuilder") ||
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ builderName.equals(MANAGED_BUILDER_ID)) { //$NON-NLS-1$
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
// Remove the command
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
Vector vec = new Vector(Arrays.asList(commands));
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
vec.removeElementAt(i);
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
vec.trimToSize();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
ICommand[] tempCommands = (ICommand[]) vec.toArray(new ICommand[commands.length-1]);
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
description.setBuildSpec(tempCommands);
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ project.setDescription(description, null);
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
}
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
}
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
@@ -84,12 +98,18 @@ public class AutotoolsMakefileBuilder ex
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
public static boolean hasTargetBuilder(IProject project) {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
try {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- IProjectDescription description = project.getDescription();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- ICommand[] commands = description.getBuildSpec();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- // See if the builder is already there
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
-
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- for (int i = 0; i < commands.length; ++i) {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
- if (commands[i].getBuilderName().equals(BUILDER_ID)) {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // When a project is converted to an Autotools project, we
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // replace the ManagedMake builder with a special one that
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // handles MakeTargets. If a project is brought into Eclipse and
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // uses the New Project Wizard to create a ManagedMake project that
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // is of type: Autotools, this added step is not done. If we know
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // we have an Autotools project from the configuration id, then
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ // we should add the builder now and return true.
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ if (project.getNature(ManagedCProjectNature.MNG_NATURE_ID) != null) {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ IConfiguration config = info.getDefaultConfiguration();
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ if (config.getParent().getId().equals(AUTOTOOLS_CONFIG_ID)) {
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
+ addAutotoolsBuilder(project, new NullProgressMonitor());
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
return true;
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
}
|
|
![](https://seccdn.libravatar.org/avatar/1d0cca8c081891de0f11c5ed4ecad73d34ffeff4982d62031cd3c0a3927e1ba8?s=16&d=retro) |
7c7b625 |
}
|