diff --git a/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF
index 30f7618aaad..bcf013e24ae 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF
+++ b/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
-Bundle-Version: 8.3.0.qualifier
+Bundle-Version: 8.4.0.qualifier
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/build/org.eclipse.cdt.managedbuilder.core/pom.xml b/build/org.eclipse.cdt.managedbuilder.core/pom.xml
index 8d045f2a4e3..227ca38b45e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/pom.xml
+++ b/build/org.eclipse.cdt.managedbuilder.core/pom.xml
@@ -11,7 +11,7 @@
../../pom.xml
- 8.3.0-SNAPSHOT
+ 8.4.0-SNAPSHOT
org.eclipse.cdt.managedbuilder.core
eclipse-plugin
diff --git a/build/org.eclipse.cdt.managedbuilder.core/schema/buildDefinitions.exsd b/build/org.eclipse.cdt.managedbuilder.core/schema/buildDefinitions.exsd
index 2cb51076d5d..5a0b969d40b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/schema/buildDefinitions.exsd
+++ b/build/org.eclipse.cdt.managedbuilder.core/schema/buildDefinitions.exsd
@@ -810,6 +810,13 @@ The pathConverter of a toolchain applies for all tools of the toolchain except i
+
+
+
+ Specifies whether or not the tool is hidden within the setting tab of the user interface. This attribute should be set to true when a tool is internal to the toolchain and options cannot be changed by the user. Default value is false.
+
+
+
@@ -1618,12 +1625,14 @@ If no order is defined a default order is assumed, see "org.eclipse.cdt.man
+
+
@@ -2574,15 +2583,6 @@ The only difference between this element and the resourceConfiguration is that r
-
-
-
-
-
- [Enter API information here.]
-
-
-
@@ -2601,6 +2601,15 @@ The only difference between this element and the resourceConfiguration is that r
+
+
+
+
+
+ [Enter API information here.]
+
+
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
index 41430dc0c1b..18651eb0fed 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
@@ -47,6 +47,10 @@ public interface ITool extends IHoldsOptions {
public static final String WHITE_SPACE = " "; //$NON-NLS-1$
public static final String EMPTY_STRING = ""; //$NON-NLS-1$
public static final String IS_SYSTEM = "isSystem"; //$NON-NLS-1$
+ /**
+ * @since 8.4
+ */
+ public static final String IS_HIDDEN = "isHidden"; //$NON-NLS-1$
public static final String VERSIONS_SUPPORTED = "versionsSupported"; //$NON-NLS-1$
public static final String CONVERT_TO_ID = "convertToId"; //$NON-NLS-1$
@@ -697,5 +701,15 @@ public interface ITool extends IHoldsOptions {
boolean isSystemObject();
+ /**
+ * @since 8.4
+ */
+ boolean isHidden();
+
+ /**
+ * @since 8.4
+ */
+ void setHidden(boolean hidden);
+
String getUniqueRealName();
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
index f26cf996721..511b248e1fa 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
@@ -155,6 +155,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
private IOptionPathConverter optionPathConverter = null ;
private SupportedProperties supportedProperties;
private Boolean supportsManagedBuild;
+ private Boolean isHidden;
private boolean isTest;
// Miscellaneous
private boolean isExtensionTool = false;
@@ -442,6 +443,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (tool.announcement != null) {
announcement = new String(tool.announcement);
}
+ if (tool.isHidden != null) {
+ isHidden = tool.isHidden;
+ }
supportsManagedBuild = tool.supportsManagedBuild;
@@ -579,6 +583,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (announcement == null) {
announcement = tool.announcement;
}
+ if (isHidden == null) {
+ isHidden = tool.isHidden;
+ }
if(supportsManagedBuild == null)
supportsManagedBuild = tool.supportsManagedBuild;
@@ -791,6 +798,12 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if(tmp != null)
supportsManagedBuild = Boolean.valueOf(tmp);
+ // isHidden
+ String hidden = element.getAttribute(ITool.IS_HIDDEN);
+ if (hidden != null) {
+ isHidden = Boolean.valueOf(hidden);
+ }
+
scannerConfigDiscoveryProfileId = SafeStringInterner.safeIntern(element.getAttribute(IToolChain.SCANNER_CONFIG_PROFILE_ID));
tmp = element.getAttribute(IS_SYSTEM);
@@ -931,6 +944,14 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (element.getAttribute(ITool.ANNOUNCEMENT) != null) {
announcement = SafeStringInterner.safeIntern(element.getAttribute(ITool.ANNOUNCEMENT));
}
+
+ // Get the tool hidden setting
+ if (element.getAttribute(ITool.IS_HIDDEN) != null) {
+ String hidden = element.getAttribute(ITool.IS_HIDDEN);
+ if(hidden != null) {
+ isHidden = Boolean.valueOf(hidden);
+ }
+ }
// icon - was saved as URL in string form
if (element.getAttribute(IOptionCategory.ICON) != null) {
@@ -1084,6 +1105,11 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (announcement != null) {
element.setAttribute(ITool.ANNOUNCEMENT, announcement);
}
+
+ // hidden tool
+ if (isHidden != null) {
+ element.setAttribute(ITool.IS_HIDDEN, isHidden.toString());
+ }
// Serialize elements from my super class
super.serialize(element);
@@ -2528,6 +2554,15 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
setDirty(true);
}
}
+
+ @Override
+ public void setHidden(boolean hidden) {
+ if (isHidden == null || !(hidden == isHidden.booleanValue())) {
+ isHidden = hidden;
+ setDirty(true);
+ }
+ }
+
/* (non-Javadoc)
* @see org.eclipse.cdt.managedbuilder.core.ITool#getCommandFlags()
@@ -3890,6 +3925,17 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
return ((IToolChain)bo).isSystemObject();
return false;
}
+
+ @Override
+ public boolean isHidden() {
+ if (isHidden == null) {
+ if (getSuperClass() != null) {
+ return getSuperClass().isHidden();
+ }
+ return false; // default is false
+ }
+ return isHidden.booleanValue();
+ }
@Override
public String getUniqueRealName() {
@@ -4032,6 +4078,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if(announcement != null && !announcement.equals(superTool.getAnnouncement()))
return true;
+
+ if(isHidden != null && isHidden.booleanValue() != superTool.isHidden())
+ return true;
if(discoveredInfoMap != null && discoveredInfoMap.size() != 0)
return true;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
index 45dba37b6e0..0381f24a68c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
@@ -1222,6 +1222,16 @@ public class ToolReference implements IToolReference {
@Override
public void addOptionCategory(IOptionCategory category) {
}
+
+ @Override
+ public void setHidden(boolean hidden) {
+ }
+
+ @Override
+ public boolean isHidden() {
+ return false;
+ }
+
/*
* The following methods are added to allow the converter from ToolReference -> Tool
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolListContentProvider.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolListContentProvider.java
index cdcfaa8fea0..674daaad240 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolListContentProvider.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ToolListContentProvider.java
@@ -67,9 +67,11 @@ public class ToolListContentProvider implements ITreeContentProvider{
filteredTools = config.getFilteredTools();
// Create an element for each one
for (int i=0; i