Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
index bba687d8168..ac7b3f22ae8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
@@ -45,6 +45,7 @@ import org.eclipse.cdt.internal.core.SafeStringInterner;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildProperty;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue;
+import org.eclipse.cdt.managedbuilder.buildproperties.IOptionalBuildProperties;
import org.eclipse.cdt.managedbuilder.core.BuildException;
import org.eclipse.cdt.managedbuilder.core.IBuildObject;
import org.eclipse.cdt.managedbuilder.core.IBuildObjectProperties;
@@ -114,6 +115,7 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
private String description;
private ICSourceEntry[] sourceEntries;
private BuildObjectProperties buildProperties;
+ private OptionalBuildProperties optionalBuildProperties;
private boolean isTest;
private SupportedProperties supportedProperties;
@@ -261,6 +263,10 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
if(props != null)
buildProperties = new BuildObjectProperties(props, this, this);
+ String optionalProps = SafeStringInterner.safeIntern(element.getAttribute(OPTIONAL_BUILD_PROPERTIES));
+ if(props != null)
+ optionalBuildProperties = new OptionalBuildProperties(optionalProps);
+
String artType = SafeStringInterner.safeIntern(element.getAttribute(BUILD_ARTEFACT_TYPE));
if(artType != null){
if(buildProperties == null)
@@ -482,6 +488,9 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
if(baseCfg.buildProperties != null)
this.buildProperties = new BuildObjectProperties(baseCfg.buildProperties, this, this);
+ if (baseCfg.optionalBuildProperties != null)
+ this.optionalBuildProperties = new OptionalBuildProperties(baseCfg.optionalBuildProperties);
+
// set managedBuildRevision
setManagedBuildRevision(baseCfg.getManagedBuildRevision());
@@ -625,6 +634,10 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
if(cloneConfig.buildProperties != null) {
this.buildProperties = new BuildObjectProperties(cloneConfig.buildProperties, this, this);
}
+
+ if (cloneConfig.optionalBuildProperties != null) {
+ this.optionalBuildProperties = new OptionalBuildProperties(cloneConfig.optionalBuildProperties);
+ }
this.description = cloneConfig.getDescription();
@@ -819,6 +832,10 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
if(props != null)
buildProperties = new BuildObjectProperties(props, this, this);
+ String optionalProps = element.getAttribute(OPTIONAL_BUILD_PROPERTIES);
+ if (optionalProps != null)
+ optionalBuildProperties = new OptionalBuildProperties(optionalProps);
+
String artType = SafeStringInterner.safeIntern(element.getAttribute(BUILD_ARTEFACT_TYPE));
if(artType != null){
if(buildProperties == null)
@@ -908,6 +925,10 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
}
}
+ if(optionalBuildProperties != null){
+ element.setAttribute(OPTIONAL_BUILD_PROPERTIES, optionalBuildProperties.toString());
+ }
+
if (parent != null)
element.setAttribute(IConfiguration.PARENT, parent.getId());
@@ -2398,6 +2419,18 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
return buildProperties;
}
+ @Override
+ public IOptionalBuildProperties getOptionalBuildProperties() {
+ if (optionalBuildProperties == null){
+ OptionalBuildProperties parentProps = findOptionalBuildProperties();
+ if(parentProps != null)
+ optionalBuildProperties = new OptionalBuildProperties(parentProps);
+ else
+ optionalBuildProperties = new OptionalBuildProperties();
+ }
+ return optionalBuildProperties;
+ }
+
private BuildObjectProperties findBuildProperties(){
if(buildProperties == null){
if(parent != null){
@@ -2407,6 +2440,16 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
}
return buildProperties;
}
+
+ private OptionalBuildProperties findOptionalBuildProperties(){
+ if (optionalBuildProperties == null){
+ if (parent != null){
+ return ((Configuration)parent).findOptionalBuildProperties();
+ }
+ return null;
+ }
+ return optionalBuildProperties;
+ }
public boolean supportsType(IBuildPropertyType type) {
return supportsType(type.getId());

Back to the top