Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java')
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java38
1 files changed, 28 insertions, 10 deletions
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java
index 4a26a8a70c2..dab59d8edde 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java
@@ -25,6 +25,7 @@ import org.eclipse.cdt.make.core.MakeProjectNature;
import org.eclipse.core.resources.ICommand;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -54,8 +55,10 @@ public class BuildInfoFactory {
static final String BUILD_AUTO_ENABLED = PREFIX + ".enableAutoBuild"; //$NON-NLS-1$
static final String BUILD_ARGUMENTS = PREFIX + ".buildArguments"; //$NON-NLS-1$
static final String ENVIRONMENT = PREFIX + ".environment"; //$NON-NLS-1$
+ static final String BUILD_APPEND_ENVIRONMENT = ".append_environment"; //$NON-NLS-1$
+
+ private abstract static class AbstractBuildInfo implements IMakeBuilderInfo {
- private abstract static class Store implements IMakeBuilderInfo {
public void setUseDefaultBuildCmd(boolean on) throws CoreException {
putString(USE_DEFAULT_BUILD_CMD, new Boolean(on).toString());
@@ -232,6 +235,17 @@ public class BuildInfoFactory {
putString(ENVIRONMENT, encodeMap(env));
}
+ public boolean appendEnvironment() {
+ if (getString(BUILD_APPEND_ENVIRONMENT).length() > 0) {
+ return getBoolean(BUILD_APPEND_ENVIRONMENT);
+ }
+ return true;
+ }
+
+ public void setAppendEnvironment(boolean append) throws CoreException {
+ putString(BUILD_APPEND_ENVIRONMENT, new Boolean(append).toString());
+ }
+
protected Map decodeMap(String value) {
Map map = new HashMap();
StringBuffer envStr = new StringBuffer(value);
@@ -298,12 +312,12 @@ public class BuildInfoFactory {
}
}
- private static class Preference extends Store {
+ private static class BuildInfoPreference extends AbstractBuildInfo {
private Preferences prefs;
private String builderID;
private boolean useDefaults;
- Preference(Preferences prefs, String builderID, boolean useDefaults) {
+ BuildInfoPreference(Preferences prefs, String builderID, boolean useDefaults) {
this.prefs = prefs;
this.builderID = builderID;
this.useDefaults = useDefaults;
@@ -329,12 +343,12 @@ public class BuildInfoFactory {
}
}
- private static class BuildProperty extends Store {
+ private static class BuildInfoProject extends AbstractBuildInfo {
private IProject project;
private String builderID;
private Map args;
- BuildProperty(IProject project, String builderID) throws CoreException {
+ BuildInfoProject(IProject project, String builderID) throws CoreException {
this.project = project;
this.builderID = builderID;
ICommand builder;
@@ -354,6 +368,10 @@ public class BuildInfoFactory {
ICommand builder = MakeProjectNature.getBuildSpec(description, builderID);
args.put(name, value);
builder.setArguments(args);
+ builder.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, isAutoBuildEnable());
+ builder.setBuilding(IncrementalProjectBuilder.FULL_BUILD, isFullBuildEnabled());
+ builder.setBuilding(IncrementalProjectBuilder.INCREMENTAL_BUILD, isIncrementalBuildEnabled());
+ builder.setBuilding(IncrementalProjectBuilder.CLEAN_BUILD, isCleanBuildEnabled());
MakeProjectNature.setBuildSpec(description, builder);
project.setDescription(description, null);
}
@@ -368,11 +386,11 @@ public class BuildInfoFactory {
}
}
- private static class BuildArguments extends Store {
+ private static class BuildInfoMap extends AbstractBuildInfo {
private Map args;
private String builderID;
- BuildArguments(Map args, String builderID) {
+ BuildInfoMap(Map args, String builderID) {
this.args = args;
this.builderID = builderID;
}
@@ -391,14 +409,14 @@ public class BuildInfoFactory {
}
public static IMakeBuilderInfo create(Preferences prefs, String builderID, boolean useDefaults) {
- return new BuildInfoFactory.Preference(prefs, builderID, useDefaults);
+ return new BuildInfoFactory.BuildInfoPreference(prefs, builderID, useDefaults);
}
public static IMakeBuilderInfo create(IProject project, String builderID) throws CoreException {
- return new BuildInfoFactory.BuildProperty(project, builderID);
+ return new BuildInfoFactory.BuildInfoProject(project, builderID);
}
public static IMakeBuilderInfo create(Map args, String builderID) {
- return new BuildInfoFactory.BuildArguments(args, builderID);
+ return new BuildInfoFactory.BuildInfoMap(args, builderID);
}
}

Back to the top