[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Fix for bugs 43490 (trivial), 44020 (partial) and 43980
|
Details in the change log.
The bulk of the patch lies in the plugin file where the tools are
specified.
Sean Evoy
Rational Software - IBM Software Group
Ottawa, Ontario, Canada
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/ChangeLog,v
retrieving revision 1.129
diff -u -r1.129 ChangeLog
--- ChangeLog 1 Oct 2003 17:10:20 -0000 1.129
+++ ChangeLog 1 Oct 2003 19:20:50 -0000
@@ -1,3 +1,14 @@
+2003-10-01 Sean Evoy
+ Fix for bugs 43490 (trivial) and 43980.
+ I added a new descriminator for the tool to determine which project nature
+ it should apply to. I had to update the plugin.xml file to add the attribute.
+ The build test just checks that the info is stored.
+ * plugin.xml
+
+ I also updated the way IDs are assigned to targets, so the tests for expected
+ IDs are no longer valid.
+ * build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
+
2003-10-01 Andrew Niefer
added testBug43450 to ManagedBuildTests.java
added a user include to plugin.xml
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/plugin.xml,v
retrieving revision 1.15
diff -u -r1.15 plugin.xml
--- plugin.xml 1 Oct 2003 17:10:20 -0000 1.15
+++ plugin.xml 1 Oct 2003 19:20:50 -0000
@@ -40,6 +40,7 @@
makeFlags="-k"
osList="win32">
<tool
+ natureFilter="cnature"
sources="foo,bar"
name="Root Tool"
headerExtensions="baz"
@@ -159,6 +160,7 @@
id="sub.config">
</configuration>
<tool
+ natureFilter="both"
sources="yarf"
name="Sub Tool"
headerExtensions="arf,barf"
@@ -202,7 +204,7 @@
</listOptionValue>
<listOptionValue
value=""../includes""
- builIn="false">
+ builtIn="false">
</listOptionValue>
</option>
<option
Index: build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java,v
retrieving revision 1.13
diff -u -r1.13 ManagedBuildTests.java
--- build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java 1 Oct 2003 17:10:20 -0000 1.13
+++ build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java 1 Oct 2003 19:20:50 -0000
@@ -286,11 +286,8 @@
*
*/
public void testConfigurations() throws CoreException, BuildException {
- String rootConfigId = "test.root.1.0";
String rootName = "Root Config";
- String overrideConfigId = "test.root.1.1";
String overrideName = "Root Override Config";
- String completeOverrideConfigId = "test.root.1.2";
String completeOverrideName = "Complete Override Config";
// Open the test project
@@ -303,11 +300,8 @@
IConfiguration[] definedConfigs = rootTarget.getConfigurations();
assertEquals(3, definedConfigs.length);
IConfiguration baseConfig = definedConfigs[0];
- assertEquals(definedConfigs[0].getId(), rootConfigId);
assertEquals(definedConfigs[0].getName(), rootName);
- assertEquals(definedConfigs[1].getId(), overrideConfigId);
assertEquals(definedConfigs[1].getName(), overrideName);
- assertEquals(definedConfigs[2].getId(), completeOverrideConfigId);
assertEquals(definedConfigs[2].getName(), completeOverrideName);
// Create a new configuration and test the rename function
@@ -355,9 +349,7 @@
rootTarget.removeConfiguration(testConfigId);
definedConfigs = rootTarget.getConfigurations();
assertEquals(3, definedConfigs.length);
- assertEquals(definedConfigs[0].getId(), rootConfigId);
assertEquals(definedConfigs[0].getName(), rootName);
- assertEquals(definedConfigs[1].getId(), overrideConfigId);
assertEquals(definedConfigs[1].getName(), overrideName);
}
@@ -522,10 +514,8 @@
// There should be a default configuration defined for the project
ITarget buildTarget = info.getDefaultTarget();
assertNotNull(buildTarget);
- assertEquals(buildTarget.getId(), "test.root.1");
IConfiguration buildConfig = info.getDefaultConfiguration(buildTarget);
assertNotNull(buildConfig);
- assertEquals(buildConfig.getId(), "test.root.1.0");
// The default target should be the same as the one-and-only target in the project
List targets = info.getTargets();
@@ -705,7 +695,8 @@
// The root tool defines one valid header file extension
assertTrue(rootTool.isHeaderFile("baz"));
assertTrue(tools[0].isHeaderFile("baz"));
-
+ assertEquals(ITool.FILTER_C, rootTool.getNatureFilter());
+
// Partially Overriden Configuration
assertEquals("Root Override Config", configs[1].getName());
tools = configs[1].getTools();
@@ -834,7 +825,8 @@
assertEquals("lib", subTool.getOutputPrefix());
assertTrue(subTool.isHeaderFile("arf"));
assertTrue(subTool.isHeaderFile("barf"));
-
+ assertEquals(ITool.FILTER_BOTH, subTool.getNatureFilter());
+
// Do a sanity check on the options
assertEquals("Include Paths", subOpts[0].getName());
assertEquals(IOption.INCLUDE_PATH, subOpts[0].getValueType());
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/ChangeLog,v
retrieving revision 1.11
diff -u -r1.11 ChangeLog
--- ChangeLog 1 Oct 2003 14:25:35 -0000 1.11
+++ ChangeLog 1 Oct 2003 19:33:10 -0000
@@ -1,3 +1,30 @@
+2003-10-01 Sean Evoy
+ Fix for bugs 43490 (trivial) and 43980.
+ Added a new field to the schema for a tool. The attribute manages a list of
+ project natures that the tool should be filtered against in the build model
+ and UI.
+ * schema/ManagedBuildTools.exsd
+
+ Updated the ITool interface and its mplementors to pay attention to this new
+ attribute when loading from a plugin file. Clients can querry for a numeric
+ constant indicating the filter.
+ * src/org/eclipse/cdt/managedbuilder/core/ITool.java
+ * src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
+ * src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
+
+ All the methods in managed build manager that access information stored in a tool
+ first check that the tool is valid for the project nature.
+ * src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
+
+ Put a safety check in the option reference constructor when reading one in from
+ a project file. I the option reference is to an option not managed by the build
+ model, the constructor does not add itself to the runtime representation of the
+ model.
+ * src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java
+
+ In preparation for 44020, each new target created is assigned a truly random ID.
+ * src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
+
2003-09-30 Sean Evoy
Fix for bug 41826.
Index: schema/ManagedBuildTools.exsd
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/schema/ManagedBuildTools.exsd,v
retrieving revision 1.5
diff -u -r1.5 ManagedBuildTools.exsd
--- schema/ManagedBuildTools.exsd 1 Oct 2003 14:25:35 -0000 1.5
+++ schema/ManagedBuildTools.exsd 1 Oct 2003 19:33:10 -0000
@@ -118,6 +118,23 @@
</documentation>
</annotation>
</attribute>
+ <attribute name="natureFilter" use="required">
+ <annotation>
+ <documentation>
+ Filter the display (and use) of the tool by the nature of the project. Selecting a value of 'cnature' insures that the tool will be displayed IFF there is a cnature associated with the project. A ccnature will filter this tool out. If 'ccnature' is selected, the tool will only be available for C++ projects. If 'both' is selected, the tool will be displayed when either nature is present.
+ </documentation>
+ </annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="cnature">
+ </enumeration>
+ <enumeration value="ccnature">
+ </enumeration>
+ <enumeration value="both">
+ </enumeration>
+ </restriction>
+ </simpleType>
+ </attribute>
</complexType>
</element>
@@ -149,8 +166,8 @@
<attribute name="valueType" use="default" value="string">
<annotation>
<documentation>
- General options can be one of the following types; 'string' for catch-all entries for options that cannot be easily defined any other way, 'string list' for entries that consist of a list of values such as defined symbols or paths, 'boolean' for options that have two values, and 'enumerated' for options that are one-of a list of values.
-
+ General options can be one of the following types; 'string' for catch-all entries for options that cannot be easily defined any other way, 'string list' for entries that consist of a list of values such as defined symbols or paths, 'boolean' for options that have two values, and 'enumerated' for options that are one-of a list of values.
+
Additional special types exist to flag options of special relevance to the build model; 'include', 'libs', 'userObjs' and 'definedSymbols'. You can pre-populate with optionValues, and they will display in the UI the same way the 'stringList' options do. The build model will look specifically for these value types when clients query for include paths and preprocessor defines. The makefile generator will treat the libs and userObjs entries differently than other stringLists.
</documentation>
</annotation>
@@ -482,48 +499,48 @@
<meta.section type="examples"/>
</appInfo>
<documentation>
- The following is an example of the extension point usage:
-<p>
-<pre>
- <extension
- id="buildExample"
- name="Tools for Build Example"
- point="org.eclipse.cdt.core.ManagedBuildInfo">
- <target
- makeFlags="-k"
- isTest="false"
- cleanCommand="rm -rf"
- name="Executable"
- defaultExtension=".exe"
- isAbstract="false"
- makeCommand="make"
- id="example.target.executable">
- <tool
- sources="C"
- name="Compiler"
- outputFlag="-o"
- outputs="exe"
- command="g++"
- id="executable.compiler">
- <optionCategory
- owner="executable.compiler"
- name="Flags"
- id="compiler.category.flags">
- </optionCategory>
- <option
- defaultValue="-c"
- name="Compiler Flags"
- category="compiler.category.flags"
- valueType="string"
- id="category.flags.comp_flags">
- </option>
- </tool>
- <configuration
- name="Default"
- id="example.config.default">
- </configuration>
- </target>
- </extension>
+ The following is an example of the extension point usage:
+<p>
+<pre>
+ <extension
+ id="buildExample"
+ name="Tools for Build Example"
+ point="org.eclipse.cdt.core.ManagedBuildInfo">
+ <target
+ makeFlags="-k"
+ isTest="false"
+ cleanCommand="rm -rf"
+ name="Executable"
+ defaultExtension=".exe"
+ isAbstract="false"
+ makeCommand="make"
+ id="example.target.executable">
+ <tool
+ sources="C"
+ name="Compiler"
+ outputFlag="-o"
+ outputs="exe"
+ command="g++"
+ id="executable.compiler">
+ <optionCategory
+ owner="executable.compiler"
+ name="Flags"
+ id="compiler.category.flags">
+ </optionCategory>
+ <option
+ defaultValue="-c"
+ name="Compiler Flags"
+ category="compiler.category.flags"
+ valueType="string"
+ id="category.flags.comp_flags">
+ </option>
+ </tool>
+ <configuration
+ name="Default"
+ id="example.config.default">
+ </configuration>
+ </target>
+ </extension>
</pre>
</documentation>
</annotation>
@@ -551,7 +568,7 @@
<meta.section type="copyright"/>
</appInfo>
<documentation>
- Copyright (c) 2003 IBM Corporation and others.
+ Copyright (c) 2003 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available on the <a href="http://www.eclipse.org/legal/cpl-v10.html"> Eclipse</a> website.
</documentation>
</annotation>
Index: src/org/eclipse/cdt/managedbuilder/core/ITool.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java,v
retrieving revision 1.2
diff -u -r1.2 ITool.java
--- src/org/eclipse/cdt/managedbuilder/core/ITool.java 1 Oct 2003 14:25:35 -0000 1.2
+++ src/org/eclipse/cdt/managedbuilder/core/ITool.java 1 Oct 2003 19:33:11 -0000
@@ -15,8 +15,9 @@
*/
public interface ITool extends IBuildObject {
// Schema element names
- public static final String TOOL_ELEMENT_NAME = "tool"; //$NON-NLS-1$
public static final String COMMAND = "command"; //$NON-NLS-1$
+ public static final String INTERFACE_EXTS = "headerExtensions"; //$NON-NLS-1$
+ public static final String NATURE = "natureFilter"; //$NON-NLS-1$
public static final String OPTION = "option"; //$NON-NLS-1$
public static final String OPTION_CAT = "optionCategory"; //$NON-NLS-1$
public static final String OPTION_REF = "optionReference"; //$NON-NLS-1$
@@ -24,8 +25,12 @@
public static final String OUTPUT_PREFIX = "outputPrefix"; //$NON-NLS-1$
public static final String OUTPUTS = "outputs"; //$NON-NLS-1$
public static final String SOURCES = "sources"; //$NON-NLS-1$
- public static final String INTERFACE_EXTS = "headerExtensions"; //$NON-NLS-1$
+ public static final String TOOL_ELEMENT_NAME = "tool"; //$NON-NLS-1$
public static final String WHITE_SPACE = " "; //$NON-NLS-1$
+
+ public static final int FILTER_C = 0;
+ public static final int FILTER_CC = 1;
+ public static final int FILTER_BOTH = 2;
/**
* Return <code>true</code> if the receiver builds files with the
@@ -35,6 +40,25 @@
* @return boolean
*/
public boolean buildsFileType(String extension);
+
+ /**
+ * Answers a constant corresponding to the project nature the tool should be used
+ * for. Possible answers are:
+ *
+ * <dl>
+ * <dt>ITool.FILTER_C
+ * <dd>The tool should only be displayed for C projects. <i>Notes:</i> even
+ * though a C++ project has a C nature, this flag will mask the tool for C++
+ * projects.
+ * <dt>ITool.FILTER_CC
+ * <dd>The tool should only be displayed for C++ projects.
+ * <dt>ITool.FILTER_BOTH
+ * <dd>The tool should be displayed for projects with both natures.
+ * </dl>
+ *
+ * @return int
+ */
+ public int getNatureFilter();
/**
* Get a particular option.
Index: src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java,v
retrieving revision 1.3
diff -u -r1.3 Configuration.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java 29 Sep 2003 01:42:26 -0000 1.3
+++ src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java 1 Oct 2003 19:33:11 -0000
@@ -15,12 +15,16 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.cdt.core.CCProjectNature;
+import org.eclipse.cdt.core.CProjectNature;
import org.eclipse.cdt.managedbuilder.core.BuildException;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IOption;
import org.eclipse.cdt.managedbuilder.core.ITarget;
import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -189,8 +193,50 @@
? parent.getTools()
: target.getTools();
+ // Validate that the tools correspond to the nature
+ IProject project = (IProject)target.getOwner();
+ if (project != null) {
+ List validTools = new ArrayList();
+
+ // The target is associated with a real project
+ for (int i = 0; i < tools.length; ++i) {
+ ITool tool = tools[i];
+ // Make sure the tool filter and project nature agree
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ try {
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ validTools.add(tool);
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ try {
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ validTools.add(tool);
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ validTools.add(tool);
+ break;
+ }
+ }
+ // Now put the valid tools back into the array
+ tools = (ITool[]) validTools.toArray(new ITool[validTools.size()]);
+ }
+
// Replace tools with local overrides
for (int i = 0; i < tools.length; ++i) {
+ ITool tool = tools[i];
+ if (tool == null) {
+ // May have been filtered out
+ continue;
+ }
ToolReference ref = getToolReference(tools[i]);
if (ref != null)
tools[i] = ref;
Index: src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java,v
retrieving revision 1.6
diff -u -r1.6 ManagedBuildInfo.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java 1 Oct 2003 14:25:35 -0000 1.6
+++ src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java 1 Oct 2003 19:33:11 -0000
@@ -25,8 +25,12 @@
import org.eclipse.cdt.managedbuilder.core.IOption;
import org.eclipse.cdt.managedbuilder.core.ITarget;
import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.core.CCProjectNature;
+import org.eclipse.cdt.core.CProjectNature;
import org.eclipse.cdt.core.parser.IScannerInfo;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.w3c.dom.Document;
@@ -34,7 +38,8 @@
import org.w3c.dom.Node;
public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo {
-
+
+ // Local variables
private boolean isDirty;
private IResource owner;
private Map targetMap;
@@ -97,13 +102,32 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#buildsFileType(java.lang.String)
*/
public boolean buildsFileType(String srcExt) {
+ // Make sure the owner is treated as a project for the duration
+ IProject project = (IProject)owner;
+
// Check to see if there is a rule to build a file with this extension
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
- if (tool.buildsFileType(srcExt)) {
- return true;
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.buildsFileType(srcExt);
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.buildsFileType(srcExt);
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.buildsFileType(srcExt);
+ }
+ } catch (CoreException e) {
+ continue;
}
}
return false;
@@ -183,12 +207,33 @@
* @see org.eclipse.cdt.core.build.managed.IScannerInfo#getDefinedSymbols()
*/
public Map getDefinedSymbols() {
+ IProject project = (IProject)owner;
// Return the defined symbols for the default configuration
HashMap symbols = new HashMap();
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int i = 0; i < tools.length; i++) {
ITool tool = tools[i];
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (!project.hasNature(CProjectNature.C_NATURE_ID) || project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (!project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ break;
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ // Now extract the valid tool's options
IOption[] opts = tool.getOptions();
for (int j = 0; j < opts.length; j++) {
IOption option = opts[j];
@@ -229,20 +274,36 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getFlagsForSource(java.lang.String)
*/
public String getFlagsForSource(String extension) {
+ IProject project = (IProject)owner;
+
// Get all the tools for the current config
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
if (tool.buildsFileType(extension)) {
- String flags = new String();
try {
- flags = tool.getToolFlags();
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolFlags();
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolFlags();
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.getToolFlags();
+ }
+ } catch (CoreException e) {
+ continue;
} catch (BuildException e) {
// Give it your best shot with the next tool
continue;
}
- return flags;
}
}
return null;
@@ -252,8 +313,9 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getToolFlags(java.lang.String)
*/
public String getFlagsForTarget(String extension) {
+ IProject project = (IProject)owner;
// Treat null extensions as an empty string
- String ext = extension == null ? new String() : extension;
+ String ext = extension == null ? new String() : extension;
// Get all the tools for the current config
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
@@ -261,14 +323,28 @@
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
if (tool.producesFileType(ext)) {
- String flags = new String();
try {
- flags = tool.getToolFlags();
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolFlags();
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolFlags();
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.getToolFlags();
+ }
+ } catch (CoreException e) {
+ continue;
} catch (BuildException e) {
- // Somehow the model is out of sync for this item. Keep iterating
+ // Give it your best shot with the next tool
continue;
}
- return flags;
}
}
return null;
@@ -278,6 +354,8 @@
* @see org.eclipse.cdt.core.build.managed.IScannerInfo#getIncludePaths()
*/
public String[] getIncludePaths() {
+ IProject project = (IProject)owner;
+
// Return the include paths for the default configuration
ArrayList paths = new ArrayList();
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
@@ -285,6 +363,26 @@
ITool[] tools = config.getTools();
for (int i = 0; i < tools.length; i++) {
ITool tool = tools[i];
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (!project.hasNature(CProjectNature.C_NATURE_ID) || project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (!project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ break;
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ // The tool checks out for this project, get its options
IOption[] opts = tool.getOptions();
for (int j = 0; j < opts.length; j++) {
IOption option = opts[j];
@@ -318,12 +416,34 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getLibsForTarget(java.lang.String)
*/
public String[] getLibsForTarget(String extension) {
+ IProject project = (IProject)owner;
+
ArrayList libs = new ArrayList();
// Get all the tools for the current config
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (!project.hasNature(CProjectNature.C_NATURE_ID) || project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (!project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ break;
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ // The tool is OK for this project nature
if (tool.producesFileType(extension)) {
IOption[] opts = tool.getOptions();
// Look for the lib option type
@@ -398,14 +518,30 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputExtension(java.lang.String)
*/
public String getOutputExtension(String resourceExtension) {
+ IProject project = (IProject)owner;
// Get all the tools for the current config
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
- String output = tool.getOutputExtension(resourceExtension);
- if (output != null) {
- return output;
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getOutputExtension(resourceExtension);
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getOutputExtension(resourceExtension);
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.getOutputExtension(resourceExtension);
+ }
+ } catch (CoreException e) {
+ continue;
}
}
return null;
@@ -415,6 +551,7 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputFlag()
*/
public String getOutputFlag(String outputExt) {
+ IProject project = (IProject)owner;
// Treat null extension as an empty string
String ext = outputExt == null ? new String() : outputExt;
@@ -424,6 +561,26 @@
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (!project.hasNature(CProjectNature.C_NATURE_ID) || project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (!project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ break;
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ // It's OK
if (tool.producesFileType(ext)) {
flags = tool.getOutputFlag();
}
@@ -435,6 +592,7 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputPrefix(java.lang.String)
*/
public String getOutputPrefix(String outputExtension) {
+ IProject project = (IProject)owner;
// Treat null extensions as empty string
String ext = outputExtension == null ? new String() : outputExtension;
@@ -444,6 +602,25 @@
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (!project.hasNature(CProjectNature.C_NATURE_ID) || project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (!project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ break;
+ }
+ } catch (CoreException e) {
+ continue;
+ }
if (tool.producesFileType(ext)) {
flags = tool.getOutputPrefix();
}
@@ -473,13 +650,33 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getToolForSource(java.lang.String)
*/
public String getToolForSource(String extension) {
+ IProject project = (IProject)owner;
+
// Get all the tools for the current config
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
if (tool.buildsFileType(extension)) {
- return tool.getToolCommand();
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolCommand();
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolCommand();
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.getToolCommand();
+ }
+ } catch (CoreException e) {
+ continue;
+ }
}
}
return null;
@@ -489,6 +686,8 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getToolInvocation(java.lang.String)
*/
public String getToolForTarget(String extension) {
+ IProject project = (IProject)owner;
+
// Treat a null argument as an empty string
String ext = extension == null ? new String() : extension;
// Get all the tools for the current config
@@ -497,7 +696,25 @@
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
if (tool.producesFileType(ext)) {
- return tool.getToolCommand();
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolCommand();
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.getToolCommand();
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.getToolCommand();
+ }
+ } catch (CoreException e) {
+ continue;
+ }
}
}
return null;
@@ -507,12 +724,33 @@
* @see org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo#getUserObjectsForTarget(java.lang.String)
*/
public String[] getUserObjectsForTarget(String extension) {
+ IProject project = (IProject)owner;
ArrayList objs = new ArrayList();
// Get all the tools for the current config
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (!project.hasNature(CProjectNature.C_NATURE_ID) || project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (!project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ continue;
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ break;
+ }
+ } catch (CoreException e) {
+ continue;
+ }
+ // The tool is OK for this project nature
if (tool.producesFileType(extension)) {
IOption[] opts = tool.getOptions();
// Look for the user object option type
@@ -543,13 +781,31 @@
* @see org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo#isHeaderFile(java.lang.String)
*/
public boolean isHeaderFile(String ext) {
+ IProject project = (IProject)owner;
+
// Check to see if there is a rule to build a file with this extension
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
- if (tool.isHeaderFile(ext)) {
- return true;
+ try {
+ // Make sure the tool is right for the project
+ switch (tool.getNatureFilter()) {
+ case ITool.FILTER_C:
+ if (project.hasNature(CProjectNature.C_NATURE_ID) && !project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.isHeaderFile(ext);
+ }
+ break;
+ case ITool.FILTER_CC:
+ if (project.hasNature(CCProjectNature.CC_NATURE_ID)) {
+ return tool.isHeaderFile(ext);
+ }
+ break;
+ case ITool.FILTER_BOTH:
+ return tool.isHeaderFile(ext);
+ }
+ } catch (CoreException e) {
+ continue;
}
}
return false;
Index: src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java,v
retrieving revision 1.3
diff -u -r1.3 OptionReference.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java 26 Sep 2003 19:54:24 -0000 1.3
+++ src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java 1 Oct 2003 19:33:11 -0000
@@ -120,6 +120,12 @@
this.owner = owner;
option = owner.getTool().getOption(element.getAttribute(ID));
+ // Bail now if there's no option for the reference
+ if (option == null) {
+ return;
+ }
+
+ // Hook the reference up
owner.addOptionReference(this);
// value
Index: src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java,v
retrieving revision 1.4
diff -u -r1.4 Target.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/Target.java 26 Sep 2003 00:20:12 -0000 1.4
+++ src/org/eclipse/cdt/managedbuilder/internal/core/Target.java 1 Oct 2003 19:33:11 -0000
@@ -16,6 +16,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Random;
import java.util.StringTokenizer;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
@@ -66,7 +67,12 @@
// Copy the parent's identity
this.parent = parent;
- setId(parent.getId() + ".1");
+ Random r = new Random();
+ int id = r.nextInt();
+ if (id < 0) {
+ id *= -1;
+ }
+ setId(owner.getName() + "." + parent.getId() + "." + id);
setName(parent.getName());
this.artifactName = parent.getArtifactName();
this.binaryParserId = parent.getBinaryParserId();
Index: src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java,v
retrieving revision 1.3
diff -u -r1.3 Tool.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java 1 Oct 2003 14:25:35 -0000 1.3
+++ src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java 1 Oct 2003 19:33:11 -0000
@@ -41,6 +41,7 @@
private String command;
private List inputExtensions;
private List interfaceExtensions;
+ private int natureFilter;
private Map optionMap;
private List options;
private String outputExtension;
@@ -71,6 +72,18 @@
// name
setName(element.getAttribute(ITool.NAME));
+ // Get the nature filter
+ String nature = element.getAttribute(NATURE);
+ if (nature == null || "both".equals(nature)) {
+ natureFilter = FILTER_BOTH;
+ } else if ("cnature".equals(nature)) {
+ natureFilter = FILTER_C;
+ } else if ("ccnature".equals(nature)) {
+ natureFilter = FILTER_CC;
+ } else {
+ natureFilter = FILTER_BOTH;
+ }
+
// Get the supported input file extension
String inputs = element.getAttribute(ITool.SOURCES) == null ?
new String() :
@@ -348,6 +361,13 @@
myOptions.trimToSize();
return (IOption[])myOptions.toArray(new IOption[myOptions.size()]);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITool#getNatureFilter()
+ */
+ public int getNatureFilter() {
+ return natureFilter;
}
/* (non-Javadoc)
Index: src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java,v
retrieving revision 1.3
diff -u -r1.3 ToolReference.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java 1 Oct 2003 14:25:35 -0000 1.3
+++ src/org/eclipse/cdt/managedbuilder/internal/core/ToolReference.java 1 Oct 2003 19:33:12 -0000
@@ -232,6 +232,7 @@
* @see org.eclipse.cdt.core.build.managed.ITool#getOutputFlag()
*/
public String getOutputFlag() {
+ // The tool reference does not override this value
return parent.getOutputFlag();
}
@@ -239,6 +240,7 @@
* @see org.eclipse.cdt.core.build.managed.ITool#getOutputPrefix()
*/
public String getOutputPrefix() {
+ // The tool reference does not override this value
return parent.getOutputPrefix();
}
@@ -253,6 +255,7 @@
* @see org.eclipse.cdt.core.build.managed.ITool#getTopOptionCategory()
*/
public IOptionCategory getTopOptionCategory() {
+ // The tool reference does not override this value
return parent.getTopOptionCategory();
}
@@ -260,6 +263,7 @@
* @see org.eclipse.cdt.managedbuilder.core.ITool#isHeaderFile(java.lang.String)
*/
public boolean isHeaderFile(String ext) {
+ // The tool reference does not override this value
return parent.isHeaderFile(ext);
}
@@ -267,6 +271,7 @@
* @see org.eclipse.cdt.core.build.managed.ITool#producesFileType(java.lang.String)
*/
public boolean producesFileType(String outputExtension) {
+ // The tool reference does not override this value
return parent.producesFileType(outputExtension);
}
@@ -279,6 +284,7 @@
* @see org.eclipse.cdt.core.build.managed.IBuildObject#getId()
*/
public String getId() {
+ // The tool reference does not override this value
return parent.getId();
}
@@ -286,23 +292,17 @@
* @see org.eclipse.cdt.core.build.managed.IBuildObject#getName()
*/
public String getName() {
+ // The tool reference does not override this value
return parent.getName();
}
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.build.managed.IBuildObject#setId(java.lang.String)
- */
- public void setId(String id) {
- // Not allowed
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.cdt.core.build.managed.IBuildObject#setName(java.lang.String)
+ /**
+ * Answers <code>true</code> if the reference is a reference to the
+ * tool specified in the argument.
+ *
+ * @param target the tool that should be tested
+ * @return boolean
*/
- public void setName(String name) {
- // Not allowed
- }
-
public boolean references(ITool target) {
if (equals(target)) {
// we are the target
@@ -367,10 +367,19 @@
* @see org.eclipse.cdt.core.build.managed.ITool#handlesFileType(java.lang.String)
*/
public boolean buildsFileType(String extension) {
+ // The tool reference does not override this value
return parent.buildsFileType(extension);
}
/* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITool#getNatureFilter()
+ */
+ public int getNatureFilter() {
+ // The tool reference does not override this value
+ return parent.getNatureFilter();
+ }
+
+ /* (non-Javadoc)
* @see org.eclipse.cdt.core.build.managed.ITool#getOption(java.lang.String)
*/
public IOption getOption(String id) {
@@ -382,6 +391,7 @@
* @see org.eclipse.cdt.core.build.managed.ITool#getOutput(java.lang.String)
*/
public String getOutputExtension(String inputExtension) {
+ // The tool reference does not override this value
return parent.getOutputExtension(inputExtension);
}
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.ui/ChangeLog,v
retrieving revision 1.7
diff -u -r1.7 ChangeLog
--- ChangeLog 1 Oct 2003 14:25:31 -0000 1.7
+++ ChangeLog 1 Oct 2003 19:33:22 -0000
@@ -1,3 +1,14 @@
+2003-10-01 Sean Evoy
+ Fix for bugs 43490 (trivial) and 43980.
+ Updated the plugin file to contain tool definitions for C compilers and linkers
+ for all supported platforms. This effectively doubles the size! I also corrected a
+ wizard specification that had the new ManagedCWizard using the C++ icon.
+ * plugin.xml
+
+ Changed the new project wizard to generate a unique ID for each new target in
+ preparation for bug 44020.
+ * src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java
+
2003-09-30 Sean Evoy
Fix for bug 41826.
Index: plugin.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.ui/plugin.properties,v
retrieving revision 1.4
diff -u -r1.4 plugin.properties
--- plugin.properties 26 Sep 2003 19:54:33 -0000 1.4
+++ plugin.properties 1 Oct 2003 19:33:22 -0000
@@ -11,9 +11,11 @@
ConfigName.Rel=Release
ConfigName.Dbg=Debug
ToolName.preprocessor = Preprocessor
-ToolName.compiler = Compiler
+ToolName.compiler.c = C Compiler
+ToolName.compiler.cpp = C++ Compiler
ToolName.archiver = Archiver
-ToolName.linker = Linker
+ToolName.linker.c = C Linker
+ToolName.linker.cpp = C++ Linker
OptionCategory.Preproc = Preprocessor
OptionCategory.Dirs = Directories
OptionCategory.General = General
@@ -36,6 +38,7 @@
Option.Posix.Verbose=Verbose (-v)
Option.OtherFlags=Other flags
+Option.Posix.Ansi=Support ANSI programs (-ansi)
Option.Posix.Linker.NoStartFiles=Do not use standard start files (-nostartfiles)
Option.Posix.Linker.NoDefLibs=Do not use default libraries (-nodefaultlibs)
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.ui/plugin.xml,v
retrieving revision 1.8
diff -u -r1.8 plugin.xml
--- plugin.xml 1 Oct 2003 14:25:31 -0000 1.8
+++ plugin.xml 1 Oct 2003 19:33:23 -0000
@@ -37,7 +37,7 @@
</wizard>
<wizard
name="%MngCWizard.name"
- icon="icons/full/wizban/newmngcc_app.gif"
+ icon="icons/full/wizban/newmngc_app.gif"
category="org.eclipse.cdt.ui.newCWizards"
class="org.eclipse.cdt.managedbuilder.ui.wizards.NewManagedCProjectWizard"
project="true"
@@ -77,52 +77,46 @@
makeFlags="-k"
osList="win32">
<tool
- sources="c,cc,cpp,cxx,C"
- name="%ToolName.compiler"
- headerExtensions="h,H,hpp"
+ natureFilter="cnature"
+ sources="c"
+ name="%ToolName.compiler.c"
+ headerExtensions="h"
outputFlag="-o"
outputs="o"
- command="g++"
- id="org.eclipse.cdt.build.tool.cygwin.compiler">
+ command="gcc"
+ id="cdt.build.tool.cygwin.gnu.c.compiler">
<optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="%OptionCategory.Preproc"
- id="cygwin.compiler.category.preprocessor">
+ id="cygwin.gnu.c.compiler.category.preprocessor">
</optionCategory>
<option
defaultValue="false"
name="%Option.Posix.Nostdinc"
- category="cygwin.compiler.category.preprocessor"
+ category="cygwin.gnu.c.compiler.category.preprocessor"
command="-nostdinc"
valueType="boolean"
- id="cygwin.gnu.compiler.preprocessor.nostdinc">
+ id="cygwin.gnu.c.compiler.preprocessor.nostdinc">
</option>
<option
defaultValue="false"
name="%Option.Posix.PreprocOnly"
- category="cygwin.compiler.category.preprocessor"
+ category="cygwin.gnu.c.compiler.category.preprocessor"
command="-E"
valueType="boolean"
- id="cygwin.gnu.compiler.preprocessor.preprocess">
- </option>
- <option
- name="Answers (-A)"
- category="cygwin.compiler.category.preprocessor"
- command="-A"
- valueType="stringList"
- id="cygwin.gnu.preprocessor.answers">
+ id="cygwin.gnu.c.compiler.preprocessor.preprocess">
</option>
<optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="Symbols"
- id="cygwin.gnu.compiler.category.symbols">
+ id="cygwin.gnu.c.compiler.category.symbols">
</optionCategory>
<option
name="%Option.Posix.DefSym"
- category="cygwin.gnu.compiler.category.symbols"
+ category="cygwin.gnu.c.compiler.category.symbols"
command="-D"
valueType="definedSymbols"
- id="cygwin.preprocessor.def.symbols">
+ id="cygwin.gnu.c.preprocessor.def.symbols">
<listOptionValue
value="_X86_=1"
builtIn="true">
@@ -214,377 +208,901 @@
</option>
<option
name="%Option.Posix.UndefSym"
- category="cygwin.gnu.compiler.category.symbols"
+ category="cygwin.gnu.c.compiler.category.symbols"
command="-U"
valueType="stringList"
- id="cygwin.preprocessor.undef.symbol">
+ id="cygwin.gnu.c.preprocessor.undef.symbol">
</option>
<optionCategory
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="%OptionCategory.Dirs"
- id="cygwin.gnu.compiler.category.dirs"
- owner="org.eclipse.cdt.build.tool.cygwin.compiler">
+ id="cygwin.gnu.c.compiler.category.dirs">
</optionCategory>
<option
name="Include Paths"
- category="cygwin.gnu.compiler.category.dirs"
+ category="cygwin.gnu.c.compiler.category.dirs"
command="-I"
valueType="includePath"
- id="cygwin.compiler.general.include.paths">
+ id="cygwin.gnu.c.compiler.general.include.paths">
<listOptionValue
value="C:\cygwin\usr\include\w32api"
builtIn="true">
</listOptionValue>
</option>
<optionCategory
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="%OptionCategory.Optimize"
- id="cygwin.gnu.compiler.category.optimization"
- owner="org.eclipse.cdt.build.tool.cygwin.compiler">
+ id="cygwin.gnu.c.compiler.category.optimization">
</optionCategory>
<option
name="Optimization Level"
- category="cygwin.gnu.compiler.category.optimization"
+ category="cygwin.gnu.c.compiler.category.optimization"
valueType="enumerated"
- id="cygwin.compiler.general.optimization.level">
+ id="cygwin.gnu.c.compiler.general.optimization.level">
<enumeratedOptionValue
name="%Option.Posix.Optimize.None"
isDefault="false"
command="-O0"
- id="cygwin.optimization.level.none">
+ id="cygwin.gnu.c.optimization.level.none">
</enumeratedOptionValue>
<enumeratedOptionValue
name="%Option.Posix.Optimize.Optimize"
command="-O1"
- id="cygwin.optimization.level.optimize">
+ id="cygwin.gnu.c.optimization.level.optimize">
</enumeratedOptionValue>
<enumeratedOptionValue
name="%Option.Posix.Optimize.More"
isDefault="true"
command="-O2"
- id="cygwin.optimization.level.more">
+ id="cygwin.gnu.c.optimization.level.more">
</enumeratedOptionValue>
<enumeratedOptionValue
name="%Option.Posix.Optimize.Most"
command="-O3"
- id="cygwin.optimization.level.most">
+ id="cygwin.gnu.c.optimization.level.most">
</enumeratedOptionValue>
</option>
<option
- category="cygwin.gnu.compiler.category.optimization"
name="Other optimization flags"
- id="cygwin.compiler.optimization.flags"
- valueType="string">
+ category="cygwin.gnu.c.compiler.category.optimization"
+ valueType="string"
+ id="cygwin.gnu.c.compiler.optimization.flags">
</option>
<optionCategory
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="%OptionCategory.Debug"
- id="cygwin.gnu.compiler.category.debug"
- owner="org.eclipse.cdt.build.tool.cygwin.compiler">
+ id="cygwin.gnu.c.compiler.category.debug">
</optionCategory>
<option
name="Debug Level"
- category="cygwin.gnu.compiler.category.debug"
+ category="cygwin.gnu.c.compiler.category.debug"
valueType="enumerated"
- id="cygwin.compiler.debugging.level">
+ id="cygwin.c.compiler.debugging.level">
<enumeratedOptionValue
name="None"
isDefault="false"
- id="cygwin.debugging.level.none">
+ id="cygwin.gnu.c.debugging.level.none">
</enumeratedOptionValue>
<enumeratedOptionValue
name="Minimal (-g1)"
command="-g1"
- id="cygwin.debugging.level.minimal">
+ id="cygwin.gnu.c.debugging.level.minimal">
</enumeratedOptionValue>
<enumeratedOptionValue
name="Default (-g)"
isDefault="true"
command="-g"
- id="cygwin.debugging.level.default">
+ id="cygwin.gnu.c.debugging.level.default">
</enumeratedOptionValue>
<enumeratedOptionValue
name="Maximum (-g3)"
isDefault="false"
command="-g3"
- id="cygwin.debugging.level.max">
+ id="cygwin.gnu.c.debugging.level.max">
</enumeratedOptionValue>
</option>
<option
- category="cygwin.gnu.compiler.category.debug"
name="Other debugging flags"
- id="cygwin.gnu.compiler.debugging.other"
- valueType="string">
+ category="cygwin.gnu.c.compiler.category.debug"
+ valueType="string"
+ id="cygwin.gnu.c.compiler.debugging.other">
</option>
<option
- category="cygwin.gnu.compiler.category.debug"
- id="cygwin.gnu.compiler.debugging.prof"
- command="-p"
- name="Generate prof information (-p)"
defaultValue="false"
- valueType="boolean">
+ name="Generate gprof information (-pg)"
+ category="cygwin.gnu.c.compiler.category.debug"
+ command="-pg"
+ valueType="boolean"
+ id="cygwin.gnu.c.compiler.debugging.gprof">
</option>
<option
- category="cygwin.gnu.compiler.category.debug"
- id="cygwin.gnu.compiler.debugging.gprof"
- command="-pg"
- name="Generate gprof information (-pg)"
defaultValue="false"
- valueType="boolean">
+ name="Generate prof information (-p)"
+ category="cygwin.gnu.c.compiler.category.debug"
+ command="-p"
+ valueType="boolean"
+ id="cygwin.gnu.c.compiler.debugging.prof">
</option>
<optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="%OptionCategory.Warn"
- id="cygwin.compiler.category.warnings">
+ id="cygwin.c.compiler.category.warnings">
</optionCategory>
<option
defaultValue="false"
name="Check syntax only (-fsyntax-only)"
- category="cygwin.compiler.category.warnings"
+ category="cygwin.c.compiler.category.warnings"
command="-fsyntax-only"
valueType="boolean"
- id="cygwin.gnu.compiler.warnings.syntax">
+ id="cygwin.gnu.c.compiler.warnings.syntax">
</option>
<option
defaultValue="false"
name="Pedantic (-pedantic)"
- category="cygwin.compiler.category.warnings"
+ category="cygwin.c.compiler.category.warnings"
command="-pedantic"
valueType="boolean"
- id="cygwin.gnu.compiler.warnings.pedantic">
+ id="cygwin.gnu.c.compiler.warnings.pedantic">
</option>
<option
defaultValue="false"
name="Pedantic warnings as errors (-pedantic-errors)"
- category="cygwin.compiler.category.warnings"
+ category="cygwin.c.compiler.category.warnings"
command="-pedantic-errors"
valueType="boolean"
- id="cygwin.gnu.compiler.warnings.pedantic.error">
+ id="cygwin.gnu.c.compiler.warnings.pedantic.error">
</option>
<option
defaultValue="false"
name="Inhibit all warnings (-w)"
- category="cygwin.compiler.category.warnings"
+ category="cygwin.c.compiler.category.warnings"
command="-w"
valueType="boolean"
- id="cygwin.gnu.compiler.warnings.nowarn">
+ id="cygwin.gnu.c.compiler.warnings.nowarn">
</option>
<option
defaultValue="true"
name="All warnings (-Wall)"
- category="cygwin.compiler.category.warnings"
+ category="cygwin.c.compiler.category.warnings"
command="-Wall"
valueType="boolean"
- id="cygwin.gnu.compiler.warnings.allwarn">
+ id="cygwin.gnu.c.compiler.warnings.allwarn">
</option>
<option
defaultValue="false"
name="Warnings as errors (-werror)"
- category="cygwin.compiler.category.warnings"
+ category="cygwin.c.compiler.category.warnings"
command="-werror"
valueType="boolean"
- id="cygwin.gnu.compiler.warnings.toerrors">
+ id="cygwin.gnu.c.compiler.warnings.toerrors">
</option>
<optionCategory
- owner="cdt.build.tool.linux.gnu.compiler"
+ owner="cdt.build.tool.cygwin.gnu.c.compiler"
name="%OptionCategory.Misc"
- id="cygwin.compiler.category.other">
+ id="cygwin.c.compiler.category.other">
</optionCategory>
<option
defaultValue="-c"
name="%Option.OtherFlags"
- category="cygwin.compiler.category.other"
+ category="cygwin.c.compiler.category.other"
valueType="string"
- id="cygwin.compiler.misc.other">
+ id="cygwin.gnu.c.compiler.misc.other">
</option>
<option
defaultValue="false"
name="%Option.Posix.Verbose"
- category="cygwin.compiler.category.other"
+ category="cygwin.c.compiler.category.other"
command="-v"
valueType="boolean"
- id="cygwin.compiler.misc.verbose">
+ id="cygwin.gnu.c.compiler.misc.verbose">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Ansi"
+ category="cygwin.c.compiler.category.other"
+ command="-ansi"
+ valueType="boolean"
+ id="cygwin.gnu.c.compiler.misc.ansi">
</option>
</tool>
- </target>
- <target
- isTest="false"
- name="Cygwin Executable"
- parent="cygwin"
- binaryParser="org.eclipse.cdt.core.PE"
- defaultExtension="exe"
- isAbstract="false"
- id="cygwin.exec">
- <configuration
- name="%ConfigName.Rel"
- id="cygwin.exec.release">
- <toolReference
- id="org.eclipse.cdt.build.tool.cygwin.compiler">
- <optionReference
- defaultValue="Optimize most (-O3)"
- command="-O3"
- id="cygwin.compiler.general.optimization.level">
- </optionReference>
- <optionReference
- defaultValue="None"
- id="cygwin.compiler.debugging.level">
- </optionReference>
- </toolReference>
- </configuration>
- <configuration
- name="%ConfigName.Dbg"
- id="cygwin.exec.debug">
- <toolReference
- id="org.eclipse.cdt.build.tool.cygwin.compiler">
- <optionReference
- defaultValue="None (-O0)"
- command="-O0"
- id="cygwin.compiler.general.optimization.level">
- </optionReference>
- <optionReference
- defaultValue="Maximum (-g3)"
- command="-g3"
- id="cygwin.compiler.debugging.level">
- </optionReference>
- </toolReference>
- </configuration>
<tool
- name="%ToolName.linker"
+ natureFilter="ccnature"
+ sources="c,cc,cpp,cxx,C"
+ name="%ToolName.compiler.cpp"
+ headerExtensions="h,H,hpp"
outputFlag="-o"
- outputs="exe"
+ outputs="o"
command="g++"
- id="org.eclipse.cdt.build.tool.cygwin.link">
+ id="org.eclipse.cdt.build.tool.cygwin.compiler">
<optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.link"
- name="%OptionCategory.General"
- id="cygwin.linker.category.general">
+ owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ name="%OptionCategory.Preproc"
+ id="cygwin.compiler.category.preprocessor">
</optionCategory>
<option
defaultValue="false"
- name="%Option.Posix.Linker.NoStartFiles"
- category="cygwin.linker.category.general"
- command="-nostartfiles"
- valueType="boolean"
- id="linux.gnu.linker.options.nostart">
- </option>
- <option
- defaultValue="false"
- name="%Option.Posix.Linker.NoDefLibs"
- category="cygwin.linker.category.general"
- command="-nodefaultlibs"
- valueType="boolean"
- id="cygwin.gnu.linker.options.nodeflibs">
- </option>
- <option
- defaultValue="false"
- name="%Option.Posix.Linker.NoStdLibs"
- category="cygwin.linker.category.general"
- command="-nostdlib"
- valueType="boolean"
- id="cygwin.gnu.linker.options.nostdlibs">
- </option>
- <option
- defaultValue="false"
- name="%Option.Posix.Linker.Strip"
- category="linux.gnu.linker.category.options"
- command="-s"
+ name="%Option.Posix.Nostdinc"
+ category="cygwin.compiler.category.preprocessor"
+ command="-nostdinc"
valueType="boolean"
- id="cygwin.gnu.linker.options.strip">
+ id="cygwin.gnu.compiler.preprocessor.nostdinc">
</option>
<option
defaultValue="false"
- name="%Option.Posix.Linker.Static"
- category="cygwin.linker.category.general"
- command="-static"
+ name="%Option.Posix.PreprocOnly"
+ category="cygwin.compiler.category.preprocessor"
+ command="-E"
valueType="boolean"
- id="cygwin.gnu.linker.options.noshared">
- </option>
- <optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.link"
- name="%OptionCategory.Libs"
- id="cygwin.gnu.linker.category.libs">
- </optionCategory>
- <option
- name="%Option.Posix.Libs"
- category="cygwin.gnu.linker.category.libs"
- command="-l"
- valueType="libs"
- id="cygwin.link.libs">
- </option>
- <option
- name="%Option.Posix.Libsearch"
- category="cygwin.gnu.linker.category.libs"
- command="-L"
- valueType="stringList"
- id="cygwin.link.ld.paths">
+ id="cygwin.gnu.compiler.preprocessor.preprocess">
</option>
<optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.link"
- name="%OptionCategory.Misc"
- id="cygwin.gnu.linker.category.other">
+ owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ name="Symbols"
+ id="cygwin.gnu.compiler.category.symbols">
</optionCategory>
<option
- name="Linker Flags"
- category="cygwin.gnu.linker.category.other"
- valueType="string"
- id="cygwin.link.ld.flags">
- </option>
- <option
- name="%Option.Posix.Linker.XLinker"
- category="cygwin.gnu.linker.category.other"
- command="-Xlinker"
- valueType="stringList"
- id="cygwin.gnu.linker.options.other">
- </option>
- <option
- name="%Option.Posix.UserObjs"
- category="cygwin.gnu.linker.category.other"
- valueType="userObjs"
- id="cygwin.gnu.link.ld.userobjs">
- </option>
- </tool>
- </target>
- <target
- isTest="false"
- name="Cygwin Shared Library"
- parent="cygwin"
- binaryParser="org.eclipse.cdt.core.PE"
- defaultExtension="dll"
- isAbstract="false"
- id="cygwin.so">
- <configuration
- name="%ConfigName.Rel"
- id="cygwin.so.release">
- <toolReference
- id="org.eclipse.cdt.build.tool.cygwin.compiler">
- <optionReference
- defaultValue="Optimize most (-O3)"
- command="-O3"
- id="cygwin.compiler.general.optimization.level">
- </optionReference>
- <optionReference
- defaultValue="None"
- id="cygwin.compiler.debugging.level">
- </optionReference>
- </toolReference>
- </configuration>
- <configuration
- name="%ConfigName.Dbg"
- id="cygwin.so.debug">
- <toolReference
- id="org.eclipse.cdt.build.tool.cygwin.compiler">
- <optionReference
- defaultValue="None (-O0)"
- command="-O0"
- id="cygwin.compiler.general.optimization.level">
- </optionReference>
- <optionReference
- defaultValue="Maximum (-g3)"
- command="-g3"
- id="cygwin.compiler.debugging.level">
- </optionReference>
- </toolReference>
- </configuration>
- <tool
- name="%ToolName.linker"
- outputFlag="-o"
+ name="%Option.Posix.DefSym"
+ category="cygwin.gnu.compiler.category.symbols"
+ command="-D"
+ valueType="definedSymbols"
+ id="cygwin.preprocessor.def.symbols">
+ <listOptionValue
+ value="_X86_=1"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__OPTIMIZE__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__STDC_HOSTED__=1"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="i386"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__i386"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__i386__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__tune_i686__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__tune_pentiumpro__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__tune_pentium2__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__tune_pentium3__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__stdcall=__attribute__((__stdcall__))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__fastcall=__attribute__((__fastcall__))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__cdecl=__attribute__((__cdecl__))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="_stdcall=__attribute__((__stdcall__))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="_fastcall=__attribute__((__fastcall__))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="_cdecl=__attribute__((__cdecl__))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__declspec(x)=__attribute__((x))"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__CYGWIN32__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__CYGWIN__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="unix"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__unix__"
+ builtIn="true">
+ </listOptionValue>
+ <listOptionValue
+ value="__unix"
+ builtIn="true">
+ </listOptionValue>
+ </option>
+ <option
+ name="%Option.Posix.UndefSym"
+ category="cygwin.gnu.compiler.category.symbols"
+ command="-U"
+ valueType="stringList"
+ id="cygwin.preprocessor.undef.symbol">
+ </option>
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ name="%OptionCategory.Dirs"
+ id="cygwin.gnu.compiler.category.dirs">
+ </optionCategory>
+ <option
+ name="Include Paths"
+ category="cygwin.gnu.compiler.category.dirs"
+ command="-I"
+ valueType="includePath"
+ id="cygwin.compiler.general.include.paths">
+ <listOptionValue
+ value="C:\cygwin\usr\include\w32api"
+ builtIn="true">
+ </listOptionValue>
+ </option>
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ name="%OptionCategory.Optimize"
+ id="cygwin.gnu.compiler.category.optimization">
+ </optionCategory>
+ <option
+ name="Optimization Level"
+ category="cygwin.gnu.compiler.category.optimization"
+ valueType="enumerated"
+ id="cygwin.compiler.general.optimization.level">
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.None"
+ isDefault="false"
+ command="-O0"
+ id="cygwin.optimization.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.Optimize"
+ command="-O1"
+ id="cygwin.optimization.level.optimize">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.More"
+ isDefault="true"
+ command="-O2"
+ id="cygwin.optimization.level.more">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.Most"
+ command="-O3"
+ id="cygwin.optimization.level.most">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other optimization flags"
+ category="cygwin.gnu.compiler.category.optimization"
+ valueType="string"
+ id="cygwin.compiler.optimization.flags">
+ </option>
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ name="%OptionCategory.Debug"
+ id="cygwin.gnu.compiler.category.debug">
+ </optionCategory>
+ <option
+ name="Debug Level"
+ category="cygwin.gnu.compiler.category.debug"
+ valueType="enumerated"
+ id="cygwin.compiler.debugging.level">
+ <enumeratedOptionValue
+ name="None"
+ isDefault="false"
+ id="cygwin.debugging.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Minimal (-g1)"
+ command="-g1"
+ id="cygwin.debugging.level.minimal">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Default (-g)"
+ isDefault="true"
+ command="-g"
+ id="cygwin.debugging.level.default">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Maximum (-g3)"
+ isDefault="false"
+ command="-g3"
+ id="cygwin.debugging.level.max">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other debugging flags"
+ category="cygwin.gnu.compiler.category.debug"
+ valueType="string"
+ id="cygwin.gnu.compiler.debugging.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate prof information (-p)"
+ category="cygwin.gnu.compiler.category.debug"
+ command="-p"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.debugging.prof">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate gprof information (-pg)"
+ category="cygwin.gnu.compiler.category.debug"
+ command="-pg"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.debugging.gprof">
+ </option>
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.compiler"
+ name="%OptionCategory.Warn"
+ id="cygwin.compiler.category.warnings">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Check syntax only (-fsyntax-only)"
+ category="cygwin.compiler.category.warnings"
+ command="-fsyntax-only"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.warnings.syntax">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic (-pedantic)"
+ category="cygwin.compiler.category.warnings"
+ command="-pedantic"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.warnings.pedantic">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic warnings as errors (-pedantic-errors)"
+ category="cygwin.compiler.category.warnings"
+ command="-pedantic-errors"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.warnings.pedantic.error">
+ </option>
+ <option
+ defaultValue="false"
+ name="Inhibit all warnings (-w)"
+ category="cygwin.compiler.category.warnings"
+ command="-w"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.warnings.nowarn">
+ </option>
+ <option
+ defaultValue="true"
+ name="All warnings (-Wall)"
+ category="cygwin.compiler.category.warnings"
+ command="-Wall"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.warnings.allwarn">
+ </option>
+ <option
+ defaultValue="false"
+ name="Warnings as errors (-werror)"
+ category="cygwin.compiler.category.warnings"
+ command="-werror"
+ valueType="boolean"
+ id="cygwin.gnu.compiler.warnings.toerrors">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Misc"
+ id="cygwin.compiler.category.other">
+ </optionCategory>
+ <option
+ defaultValue="-c"
+ name="%Option.OtherFlags"
+ category="cygwin.compiler.category.other"
+ valueType="string"
+ id="cygwin.compiler.misc.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Verbose"
+ category="cygwin.compiler.category.other"
+ command="-v"
+ valueType="boolean"
+ id="cygwin.compiler.misc.verbose">
+ </option>
+ </tool>
+ </target>
+ <target
+ isTest="false"
+ name="Cygwin Executable"
+ parent="cygwin"
+ binaryParser="org.eclipse.cdt.core.PE"
+ defaultExtension="exe"
+ isAbstract="false"
+ id="cygwin.exec">
+ <configuration
+ name="%ConfigName.Rel"
+ id="cygwin.exec.release">
+ <toolReference
+ id="org.eclipse.cdt.build.tool.cygwin.compiler">
+ <optionReference
+ defaultValue="Optimize most (-O3)"
+ command="-O3"
+ id="cygwin.compiler.general.optimization.level">
+ </optionReference>
+ <optionReference
+ defaultValue="None"
+ id="cygwin.compiler.debugging.level">
+ </optionReference>
+ </toolReference>
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="cygwin.exec.debug">
+ <toolReference
+ id="org.eclipse.cdt.build.tool.cygwin.compiler">
+ <optionReference
+ defaultValue="None (-O0)"
+ command="-O0"
+ id="cygwin.compiler.general.optimization.level">
+ </optionReference>
+ <optionReference
+ defaultValue="Maximum (-g3)"
+ command="-g3"
+ id="cygwin.compiler.debugging.level">
+ </optionReference>
+ </toolReference>
+ </configuration>
+ <tool
+ natureFilter="cnature"
+ name="%ToolName.linker.c"
+ outputFlag="-o"
+ outputs="exe"
+ command="gcc"
+ id="cdt.build.tool.cygwin.c.link">
+ <optionCategory
+ owner="cdt.build.tool.cygwin.c.link"
+ name="%OptionCategory.General"
+ id="cygwin.gnu.c.linker.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="cygwin.gnu.c.linker.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="cygwin.gnu.c.link.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="cygwin.gnu.c.linker.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="cygwin.gnu.c.link.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="cygwin.gnu.c.linker.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="cygwin.gnu.c.link.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="cygwin.gnu.c.linker.category.general"
+ command="-s"
+ valueType="boolean"
+ id="cygwin.gnu.c.link.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="cygwin.gnu.c.linker.category.general"
+ command="-static"
+ valueType="boolean"
+ id="cygwin.gnu.c.link.options.noshared">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.cygwin.c.link"
+ name="%OptionCategory.Libs"
+ id="cygwin.gnu.c.linker.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="cygwin.gnu.c.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="cygwin.gnu.c.link.libs">
+ </option>
+ <option
+ name="%Option.Posix.Libsearch"
+ category="cygwin.gnu.c.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="cygwin.gnu.c.link.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.cygwin.c.link"
+ name="%OptionCategory.Misc"
+ id="cygwin.gnu.c.linker.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="cygwin.gnu.c.linker.category.other"
+ valueType="string"
+ id="cygwin.gnu.c.link.ldflags">
+ </option>
+ <option
+ name="%Option.Posix.Linker.XLinker"
+ category="cygwin.gnu.c.linker.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="cygwin.gnu.c.link.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="cygwin.gnu.c.linker.category.other"
+ valueType="userObjs"
+ id="cygwin.gnu.c.link.ld.userobjs">
+ </option>
+ </tool>
+ <tool
+ natureFilter="ccnature"
+ name="%ToolName.linker.cpp"
+ outputFlag="-o"
+ outputs="exe"
+ command="g++"
+ id="org.eclipse.cdt.build.tool.cygwin.link">
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.link"
+ name="%OptionCategory.General"
+ id="cygwin.linker.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="cygwin.linker.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="cygwin.gnu.linker.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="cygwin.linker.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="cygwin.gnu.linker.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="cygwin.linker.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="cygwin.gnu.linker.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="cygwin.linker.category.general"
+ command="-s"
+ valueType="boolean"
+ id="cygwin.gnu.linker.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="cygwin.linker.category.general"
+ command="-static"
+ valueType="boolean"
+ id="cygwin.gnu.linker.options.noshared">
+ </option>
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.link"
+ name="%OptionCategory.Libs"
+ id="cygwin.gnu.linker.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="cygwin.gnu.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="cygwin.link.libs">
+ </option>
+ <option
+ name="%Option.Posix.Libsearch"
+ category="cygwin.gnu.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="cygwin.link.ld.paths">
+ </option>
+ <optionCategory
+ owner="org.eclipse.cdt.build.tool.cygwin.link"
+ name="%OptionCategory.Misc"
+ id="cygwin.gnu.linker.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="cygwin.gnu.linker.category.other"
+ valueType="string"
+ id="cygwin.link.ld.flags">
+ </option>
+ <option
+ name="%Option.Posix.Linker.XLinker"
+ category="cygwin.gnu.linker.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="cygwin.gnu.linker.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="cygwin.gnu.linker.category.other"
+ valueType="userObjs"
+ id="cygwin.gnu.link.ld.userobjs">
+ </option>
+ </tool>
+ </target>
+ <target
+ isTest="false"
+ name="Cygwin Shared Library"
+ parent="cygwin"
+ binaryParser="org.eclipse.cdt.core.PE"
+ defaultExtension="dll"
+ isAbstract="false"
+ id="cygwin.so">
+ <configuration
+ name="%ConfigName.Rel"
+ id="cygwin.so.release">
+ <toolReference
+ id="org.eclipse.cdt.build.tool.cygwin.compiler">
+ <optionReference
+ defaultValue="Optimize most (-O3)"
+ command="-O3"
+ id="cygwin.compiler.general.optimization.level">
+ </optionReference>
+ <optionReference
+ defaultValue="None"
+ id="cygwin.compiler.debugging.level">
+ </optionReference>
+ </toolReference>
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="cygwin.so.debug">
+ <toolReference
+ id="org.eclipse.cdt.build.tool.cygwin.compiler">
+ <optionReference
+ defaultValue="None (-O0)"
+ command="-O0"
+ id="cygwin.compiler.general.optimization.level">
+ </optionReference>
+ <optionReference
+ defaultValue="Maximum (-g3)"
+ command="-g3"
+ id="cygwin.compiler.debugging.level">
+ </optionReference>
+ </toolReference>
+ </configuration>
+ <tool
+ natureFilter="cnature"
+ name="%ToolName.linker.c"
+ outputFlag="-o"
+ outputs="dll"
+ outputPrefix="lib"
+ command="gcc -shared"
+ id="cdt.build.tool.cygwin.c.solink">
+ <optionCategory
+ owner="cdt.build.tool.cygwin.c.solink"
+ name="%OptionCategory.General"
+ id="cygwin.gnu.c.solink.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="cygwin.gnu.c.solink.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="cygwin.gnu.c.solink.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="cygwin.gnu.c.solink.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="cygwin.gnu.c.solink.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="cygwin.gnu.c.solink.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="cygwin.gnu.c.solink.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="cygwin.gnu.c.solink.category.general"
+ command="-s"
+ valueType="boolean"
+ id="cygwin.gnu.c.solink.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="cygwin.gnu.c.solink.category.general"
+ command="-static"
+ valueType="boolean"
+ id="cygwin.gnu.c.solink.options.noshared">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.cygwin.c.solink"
+ name="%OptionCategory.Libs"
+ id="cygwin.gnu.c.solink.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="cygwin.gnu.c.solink.category.libs"
+ command="-l"
+ valueType="libs"
+ id="cygwin.gnu.c.solink.libs">
+ </option>
+ <option
+ name="%Option.Posix.Libsearch"
+ category="cygwin.gnu.c.solink.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="cygwin.gnu.c.solink.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.cygwin.c.solink"
+ name="%OptionCategory.Misc"
+ id="cygwin.gnu.c.solink.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="cygwin.gnu.c.solink.category.other"
+ valueType="string"
+ id="cygwin.gnu.c.solink.ldflags">
+ </option>
+ <option
+ name="%Option.Posix.Linker.XLinker"
+ category="cygwin.gnu.c.solink.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="cygwin.gnu.c.solink.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="cygwin.gnu.c.solink.category.other"
+ valueType="userObjs"
+ id="cygwin.gnu.c.solink.userobjs">
+ </option>
+ </tool>
+ <tool
+ natureFilter="ccnature"
+ name="%ToolName.linker.cpp"
+ outputFlag="-o"
outputs="dll"
outputPrefix="lib"
command="g++ -shared"
@@ -600,7 +1118,7 @@
category="cygwin.gnu.solink.category.general"
command="-nostartfiles"
valueType="boolean"
- id="linux.gnu.solink.options.nostart">
+ id="cygwin.gnu.solink.options.nostart">
</option>
<option
defaultValue="false"
@@ -714,7 +1232,8 @@
</toolReference>
</configuration>
<tool
- name="%ToolName.linker"
+ natureFilter="ccnature"
+ name="%ToolName.linker.cpp"
outputFlag="-o"
outputs="dll"
outputPrefix="cyg"
@@ -790,38 +1309,337 @@
</toolReference>
</configuration>
<tool
+ natureFilter="both"
name="%ToolName.archiver"
outputs="a"
outputPrefix="lib"
command="ar"
id="org.eclipse.cdt.build.tool.cygwin.ar">
<optionCategory
- owner="org.eclipse.cdt.build.tool.cygwin.ar"
- name="%OptionCategory.General"
- id="cygwin.ar.category.general">
+ owner="org.eclipse.cdt.build.tool.cygwin.ar"
+ name="%OptionCategory.General"
+ id="cygwin.ar.category.general">
+ </optionCategory>
+ <option
+ defaultValue="-r"
+ name="Archiver Flags"
+ category="cygwin.ar.category.general"
+ valueType="string"
+ id="cygwin.ar.flags">
+ </option>
+ </tool>
+ </target>
+ <target
+ name="Linux"
+ id="linux.gnu"
+ cleanCommand="rm -rf"
+ isTest="false"
+ isAbstract="true"
+ makeCommand="make"
+ binaryParser="org.eclipse.cdt.core.ELF"
+ makeFlags="-k"
+ osList="linux">
+ <tool
+ natureFilter="cnature"
+ sources="c"
+ name="%ToolName.compiler.c"
+ headerExtensions="h"
+ outputFlag="-o"
+ outputs="o"
+ command="gcc"
+ id="cdt.build.tool.linux.gnu.c.compiler">
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="%OptionCategory.Preproc"
+ id="linux.gnu.c.compiler.category.preprocessor">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Nostdinc"
+ category="linux.gnu.c.compiler.category.preprocessor"
+ command="-nostdinc"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.preprocessor.nostdinc">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.PreprocOnly"
+ category="linux.gnu.c.compiler.category.preprocessor"
+ command="-E"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.preprocessor.preprocess">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="Symbols"
+ id="linux.gnu.c.compiler.category.symbols">
+ </optionCategory>
+ <option
+ name="%Option.Posix.DefSym"
+ category="linux.gnu.c.compiler.category.symbols"
+ command="-D"
+ valueType="definedSymbols"
+ id="linux.gnu.c.preprocessor.def.symbols">
+ <listOptionValue
+ builtIn="true"
+ value="__ELF__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="unix">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__gnu_linux__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="linux">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__unix__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__linux__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__unix">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__linux">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__OPTIMIZE__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__STDC_HOSTED__=1">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="_GNU_SOURCE">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="i386">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__i386">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__i386__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__tune_i386__">
+ </listOptionValue>
+ </option>
+ <option
+ name="%Option.Posix.UndefSym"
+ category="linux.gnu.c.compiler.category.symbols"
+ command="-U"
+ valueType="stringList"
+ id="linux.gnu.c.preprocessor.undef.symbol">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="%OptionCategory.Dirs"
+ id="linux.gnu.c.compiler.category.dirs">
+ </optionCategory>
+ <option
+ name="Include Paths"
+ category="linux.gnu.c.compiler.category.dirs"
+ command="-I"
+ valueType="includePath"
+ id="linux.gnu.c.compiler.general.include.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="%OptionCategory.Optimize"
+ id="linux.gnu.c.compiler.category.optimization">
+ </optionCategory>
+ <option
+ name="Optimization Level"
+ category="linux.gnu.c.compiler.category.optimization"
+ valueType="enumerated"
+ id="linux.gnu.c.compiler.general.optimization.level">
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.None"
+ isDefault="false"
+ command="-O0"
+ id="linux.gnu.c.optimization.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.Optimize"
+ command="-O1"
+ id="linux.gnu.c.optimization.level.optimize">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.More"
+ isDefault="true"
+ command="-O2"
+ id="linux.gnu.c.optimization.level.more">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.Most"
+ command="-O3"
+ id="linux.gnu.c.optimization.level.most">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other optimization flags"
+ category="linux.gnu.c.compiler.category.optimization"
+ valueType="string"
+ id="linux.gnu.c.compiler.optimization.flags">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="%OptionCategory.Debug"
+ id="linux.gnu.c.compiler.category.debug">
+ </optionCategory>
+ <option
+ name="Debug Level"
+ category="linux.gnu.c.compiler.category.debug"
+ valueType="enumerated"
+ id="linux.c.compiler.debugging.level">
+ <enumeratedOptionValue
+ name="None"
+ isDefault="false"
+ id="linux.gnu.c.debugging.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Minimal (-g1)"
+ command="-g1"
+ id="linux.gnu.c.debugging.level.minimal">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Default (-g)"
+ isDefault="true"
+ command="-g"
+ id="linux.gnu.c.debugging.level.default">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Maximum (-g3)"
+ isDefault="false"
+ command="-g3"
+ id="linux.gnu.c.debugging.level.max">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other debugging flags"
+ category="linux.gnu.c.compiler.category.debug"
+ valueType="string"
+ id="linux.gnu.c.compiler.debugging.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate gprof information (-pg)"
+ category="linux.gnu.c.compiler.category.debug"
+ command="-pg"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.debugging.gprof">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate prof information (-p)"
+ category="linux.gnu.c.compiler.category.debug"
+ command="-p"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.debugging.prof">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="%OptionCategory.Warn"
+ id="linux.c.compiler.category.warnings">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Check syntax only (-fsyntax-only)"
+ category="linux.c.compiler.category.warnings"
+ command="-fsyntax-only"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.warnings.syntax">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic (-pedantic)"
+ category="linux.c.compiler.category.warnings"
+ command="-pedantic"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.warnings.pedantic">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic warnings as errors (-pedantic-errors)"
+ category="linux.c.compiler.category.warnings"
+ command="-pedantic-errors"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.warnings.pedantic.error">
+ </option>
+ <option
+ defaultValue="false"
+ name="Inhibit all warnings (-w)"
+ category="linux.c.compiler.category.warnings"
+ command="-w"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.warnings.nowarn">
+ </option>
+ <option
+ defaultValue="true"
+ name="All warnings (-Wall)"
+ category="linux.c.compiler.category.warnings"
+ command="-Wall"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.warnings.allwarn">
+ </option>
+ <option
+ defaultValue="false"
+ name="Warnings as errors (-werror)"
+ category="linux.c.compiler.category.warnings"
+ command="-werror"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.warnings.toerrors">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.compiler"
+ name="%OptionCategory.Misc"
+ id="linux.c.compiler.category.other">
</optionCategory>
<option
- defaultValue="-r"
- name="Archiver Flags"
- category="cygwin.ar.category.general"
+ defaultValue="-c"
+ name="%Option.OtherFlags"
+ category="linux.c.compiler.category.other"
valueType="string"
- id="cygwin.ar.flags">
+ id="linux.gnu.c.compiler.misc.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Verbose"
+ category="linux.c.compiler.category.other"
+ command="-v"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.misc.verbose">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Ansi"
+ category="linux.c.compiler.category.other"
+ command="-ansi"
+ valueType="boolean"
+ id="linux.gnu.c.compiler.misc.ansi">
</option>
</tool>
- </target>
- <target
- name="Linux"
- id="linux.gnu"
- cleanCommand="rm -rf"
- isTest="false"
- isAbstract="true"
- makeCommand="make"
- binaryParser="org.eclipse.cdt.core.ELF"
- makeFlags="-k"
- osList="linux">
<tool
+ natureFilter="ccnature"
sources="c,C,cc,cxx,cpp"
- name="%ToolName.compiler"
+ name="%ToolName.compiler.cpp"
headerExtensions="h,H,hpp"
outputFlag="-o"
outputs="o"
@@ -975,151 +1793,382 @@
</enumeratedOptionValue>
</option>
<option
- name="Other optimization flags"
- category="linux.gnu.compiler.category.optimization"
- valueType="string"
- id="linux.compiler.optimization.flags">
+ name="Other optimization flags"
+ category="linux.gnu.compiler.category.optimization"
+ valueType="string"
+ id="linux.compiler.optimization.flags">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Debug"
+ id="linux.gnu.compiler.category.debug">
+ </optionCategory>
+ <option
+ name="Debug Level"
+ category="linux.gnu.compiler.category.debug"
+ valueType="enumerated"
+ id="linux.gnu.compiler.debugging.level">
+ <enumeratedOptionValue
+ name="None"
+ isDefault="false"
+ id="linux.gnu.compiler.debugging.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Minimal (-g1)"
+ command="-g1"
+ id="linux.gnu.compiler.debugging.level.minimal">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Default (-g)"
+ isDefault="true"
+ command="-g"
+ id="linux.gnu.compiler.debugging.level.default">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Maximum (-g3)"
+ isDefault="false"
+ command="-g3"
+ id="linux.gnu.compiler.debugging.level.max">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other debugging flags"
+ category="linux.gnu.compiler.category.debug"
+ valueType="string"
+ id="linux.gnu.compiler.debugging.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate prof information (-p)"
+ category="linux.gnu.compiler.category.debug"
+ command="-p"
+ valueType="boolean"
+ id="linux.gnu.compiler.debugging.prof">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate gprof information (-pg)"
+ category="linux.gnu.compiler.category.debug"
+ command="-pg"
+ valueType="boolean"
+ id="linux.gnu.compiler.debugging.gprof">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Warn"
+ id="linux.gnu.compiler.category.warnings">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Check syntax only (-fsyntax-only)"
+ category="linux.gnu.compiler.category.warnings"
+ command="-fsyntax-only"
+ valueType="boolean"
+ id="linux.gnu.compiler.warnings.syntax">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic (-pedantic)"
+ category="linux.gnu.compiler.category.warnings"
+ command="-pedantic"
+ valueType="boolean"
+ id="linux.gnu.compiler.warnings.pedantic">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic warnings as errors (-pedantic-errors)"
+ category="linux.gnu.compiler.category.warnings"
+ command="-pedantic-errors"
+ valueType="boolean"
+ id="linux.gnu.compiler.warnings.pedantic.error">
+ </option>
+ <option
+ defaultValue="false"
+ name="Inhibit all warnings (-w)"
+ category="linux.gnu.compiler.category.warnings"
+ command="-w"
+ valueType="boolean"
+ id="linux.gnu.compiler.warnings.nowarn">
+ </option>
+ <option
+ defaultValue="true"
+ name="All warnings (-Wall)"
+ category="linux.gnu.compiler.category.warnings"
+ command="-Wall"
+ valueType="boolean"
+ id="linux.gnu.compiler.warnings.allwarn">
+ </option>
+ <option
+ defaultValue="false"
+ name="Warnings as errors (-werror)"
+ category="linux.gnu.compiler.category.warnings"
+ command="-werror"
+ valueType="boolean"
+ id="linux.gnu.compiler.warnings.toerrors">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Misc"
+ id="linux.gnu.compiler.category.other">
+ </optionCategory>
+ <option
+ defaultValue="-c"
+ name="%Option.OtherFlags"
+ category="linux.gnu.compiler.category.other"
+ valueType="string"
+ id="linux.gnu.compiler.other.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Verbose"
+ category="linux.gnu.compiler.category.other"
+ command="-v"
+ valueType="boolean"
+ id="linux.gnu.compiler.other.verbose">
+ </option>
+ </tool>
+ </target>
+ <target
+ isTest="false"
+ name="Linux Executable"
+ parent="linux.gnu"
+ binaryParser="org.eclipse.cdt.core.ELF"
+ isAbstract="false"
+ id="linux.gnu.exec">
+ <configuration
+ name="%ConfigName.Rel"
+ id="linux.gnu.exec.release">
+ <toolReference
+ id="cdt.build.tool.linux.gnu.compiler">
+ <optionReference
+ defaultValue="Optimize most (-O3)"
+ id="linux.gnu.compiler.optimization.level">
+ </optionReference>
+ <optionReference
+ defaultValue="None"
+ id="linux.gnu.compiler.debugging.level">
+ </optionReference>
+ </toolReference>
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="linux.gnu.exec.debug">
+ <toolReference
+ id="cdt.build.tool.linux.gnu.compiler">
+ <optionReference
+ defaultValue="None (-O0)"
+ id="linux.gnu.compiler.optimization.level">
+ </optionReference>
+ <optionReference
+ defaultValue="Maximum (-g3)"
+ id="linux.gnu.compiler.debugging.level">
+ </optionReference>
+ </toolReference>
+ </configuration>
+ <tool
+ natureFilter="cnature"
+ sources="o"
+ name="%ToolName.linker.c"
+ outputFlag="-o"
+ command="gcc"
+ id="cdt.build.tool.linux.c.link">
+ <optionCategory
+ owner="cdt.build.tool.linux.c.link"
+ name="%OptionCategory.General"
+ id="linux.gnu.c.linker.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="linux.gnu.c.linker.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="linux.gnu.c.link.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="linux.gnu.c.linker.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="linux.gnu.c.link.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="linux.gnu.c.linker.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="linux.gnu.c.link.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="linux.gnu.c.linker.category.options"
+ command="-s"
+ valueType="boolean"
+ id="linux.gnu.c.link.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="linux.gnu.c.linker.category.general"
+ command="-static"
+ valueType="boolean"
+ id="linux.gnu.c.link.options.noshared">
</option>
<optionCategory
- owner="cdt.build.tool.linux.gnu.compiler"
- name="%OptionCategory.Debug"
- id="linux.gnu.compiler.category.debug">
+ owner="cdt.build.tool.linux.c.link"
+ name="%OptionCategory.Libs"
+ id="linux.gnu.c.linker.category.libs">
</optionCategory>
<option
- name="Debug Level"
- category="linux.gnu.compiler.category.debug"
- valueType="enumerated"
- id="linux.gnu.compiler.debugging.level">
- <enumeratedOptionValue
- name="None"
- isDefault="false"
- id="linux.gnu.compiler.debugging.level.none">
- </enumeratedOptionValue>
- <enumeratedOptionValue
- name="Minimal (-g1)"
- command="-g1"
- id="linux.gnu.compiler.debugging.level.minimal">
- </enumeratedOptionValue>
- <enumeratedOptionValue
- name="Default (-g)"
- isDefault="true"
- command="-g"
- id="linux.gnu.compiler.debugging.level.default">
- </enumeratedOptionValue>
- <enumeratedOptionValue
- name="Maximum (-g3)"
- isDefault="false"
- command="-g3"
- id="linux.gnu.compiler.debugging.level.max">
- </enumeratedOptionValue>
+ name="%Option.Posix.Libs"
+ category="linux.gnu.c.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="linux.gnu.c.link.libs">
</option>
<option
- name="Other debugging flags"
- category="linux.gnu.compiler.category.debug"
+ name="%Option.Posix.Libsearch"
+ category="linux.gnu.c.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="linux.gnu.c.link.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.c.link"
+ name="%OptionCategory.Misc"
+ id="linux.gnu.c.linker.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="linux.gnu.c.linker.category.other"
valueType="string"
- id="linux.gnu.compiler.debugging.other">
+ id="linux.gnu.c.link.ldflags">
</option>
<option
- defaultValue="false"
- name="Generate prof information (-p)"
- category="linux.gnu.compiler.category.debug"
- command="-p"
- valueType="boolean"
- id="linux.gnu.compiler.debugging.prof">
+ name="%Option.Posix.Linker.XLinker"
+ category="linux.gnu.c.linker.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="linux.gnu.c.link.options.other">
</option>
<option
- defaultValue="false"
- name="Generate gprof information (-pg)"
- category="linux.gnu.compiler.category.debug"
- command="-pg"
- valueType="boolean"
- id="linux.gnu.compiler.debugging.gprof">
+ name="%Option.Posix.UserObjs"
+ category="linux.gnu.c.linker.category.other"
+ valueType="userObjs"
+ id="linux.gnu.c.link.ld.userobjs">
</option>
+ </tool>
+ <tool
+ natureFilter="ccnature"
+ sources="o"
+ name="%ToolName.linker.cpp"
+ outputFlag="-o"
+ command="g++"
+ id="cdt.build.tool.linux.gnu.link">
<optionCategory
- owner="cdt.build.tool.linux.gnu.compiler"
- name="%OptionCategory.Warn"
- id="linux.gnu.compiler.category.warnings">
+ owner="cdt.build.tool.linux.gnu.link"
+ name="%OptionCategory.General"
+ id="linux.gnu.linker.category.options">
</optionCategory>
<option
defaultValue="false"
- name="Check syntax only (-fsyntax-only)"
- category="linux.gnu.compiler.category.warnings"
- command="-fsyntax-only"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="linux.gnu.linker.category.options"
+ command="-nostartfiles"
valueType="boolean"
- id="linux.gnu.compiler.warnings.syntax">
+ id="linux.gnu.linker.options.nostart">
</option>
<option
defaultValue="false"
- name="Pedantic (-pedantic)"
- category="linux.gnu.compiler.category.warnings"
- command="-pedantic"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="linux.gnu.linker.category.options"
+ command="-nodefaultlibs"
valueType="boolean"
- id="linux.gnu.compiler.warnings.pedantic">
+ id="linux.gnu.linker.options.nodeflibs">
</option>
<option
defaultValue="false"
- name="Pedantic warnings as errors (-pedantic-errors)"
- category="linux.gnu.compiler.category.warnings"
- command="-pedantic-errors"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="linux.gnu.linker.category.options"
+ command="-nostdlib"
valueType="boolean"
- id="linux.gnu.compiler.warnings.pedantic.error">
+ id="linux.gnu.linker.options.nostdlibs">
</option>
<option
defaultValue="false"
- name="Inhibit all warnings (-w)"
- category="linux.gnu.compiler.category.warnings"
- command="-w"
+ name="%Option.Posix.Linker.Strip"
+ category="linux.gnu.linker.category.options"
+ command="-s"
valueType="boolean"
- id="linux.gnu.compiler.warnings.nowarn">
+ id="linux.gnu.linker.options.strip">
</option>
<option
- defaultValue="true"
- name="All warnings (-Wall)"
- category="linux.gnu.compiler.category.warnings"
- command="-Wall"
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="linux.gnu.linker.category.options"
+ command="-static"
valueType="boolean"
- id="linux.gnu.compiler.warnings.allwarn">
+ id="linux.gnu.linker.options.noshared">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.link"
+ name="%OptionCategory.Libs"
+ id="linux.gnu.linker.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="linux.gnu.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="linux.gnu.linker.libs.libs">
</option>
<option
- defaultValue="false"
- name="Warnings as errors (-werror)"
- category="linux.gnu.compiler.category.warnings"
- command="-werror"
- valueType="boolean"
- id="linux.gnu.compiler.warnings.toerrors">
+ name="%Option.Posix.Libsearch"
+ category="linux.gnu.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="linux.gnu.linker.libs.paths">
</option>
<optionCategory
- owner="cdt.build.tool.linux.gnu.compiler"
+ owner="cdt.build.tool.linux.gnu.link"
name="%OptionCategory.Misc"
- id="linux.gnu.compiler.category.other">
+ id="linux.gnu.linker.category.other">
</optionCategory>
<option
- defaultValue="-c"
- name="%Option.OtherFlags"
- category="linux.gnu.compiler.category.other"
+ name="%Option.Posix.Linker.Flags"
+ category="linux.gnu.linker.category.other"
valueType="string"
- id="linux.gnu.compiler.other.other">
+ id="linux.gnu.linker.libs.flags">
</option>
<option
- defaultValue="false"
- name="%Option.Posix.Verbose"
- category="linux.gnu.compiler.category.other"
- command="-v"
- valueType="boolean"
- id="linux.gnu.compiler.other.verbose">
+ name="%Option.Posix.Linker.XLinker"
+ category="linux.gnu.linker.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="linux.gnu.linker.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="linux.gnu.linker.category.other"
+ valueType="userObjs"
+ id="linux.gnu.linker.userobjs">
</option>
</tool>
</target>
<target
isTest="false"
- name="Linux Executable"
+ name="Linux Shared Library"
parent="linux.gnu"
binaryParser="org.eclipse.cdt.core.ELF"
+ defaultExtension="so"
isAbstract="false"
- id="linux.gnu.exec">
+ id="linux.gnu.so">
<configuration
name="%ConfigName.Rel"
- id="linux.gnu.exec.release">
+ id="linux.gnu.so.release">
<toolReference
id="cdt.build.tool.linux.gnu.compiler">
<optionReference
@@ -1134,7 +2183,7 @@
</configuration>
<configuration
name="%ConfigName.Dbg"
- id="linux.gnu.exec.debug">
+ id="linux.gnu.so.debug">
<toolReference
id="cdt.build.tool.linux.gnu.compiler">
<optionReference
@@ -1148,112 +2197,205 @@
</toolReference>
</configuration>
<tool
+ natureFilter="cnature"
sources="o"
- name="%ToolName.linker"
+ name="%ToolName.linker.c"
outputFlag="-o"
- command="g++"
- id="cdt.build.tool.linux.gnu.link">
+ outputs="so"
+ outputPrefix="lib"
+ command="gcc -shared"
+ id="cdt.build.tool.linux.gnu.c.solink">
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.solink"
+ name="%OptionCategory.General"
+ id="linux.gnu.c.solink.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="linux.gnu.c.solink.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="linux.gnu.c.solink.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="linux.gnu.c.solink.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="linux.gnu.c.solink.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="linux.gnu.c.solink.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="linux.gnu.c.solink.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="linux.gnu.c.solink.category.general"
+ command="-s"
+ valueType="boolean"
+ id="linux.gnu.c.solink.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="linux.gnu.c.solink.category.general"
+ command="-static"
+ valueType="boolean"
+ id="linux.gnu.c.solink.options.noshared">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.solink"
+ name="%OptionCategory.Libs"
+ id="linux.gnu.c.solink.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="linux.gnu.c.solink.category.libs"
+ command="-l"
+ valueType="libs"
+ id="linux.gnu.c.solink.libs">
+ </option>
+ <option
+ name="%Option.Posix.Libsearch"
+ category="linux.gnu.c.solink.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="linux.gnu.c.solink.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.c.solink"
+ name="%OptionCategory.Misc"
+ id="linux.gnu.c.solink.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="linux.gnu.c.solink.category.other"
+ valueType="string"
+ id="linux.gnu.c.solink.ldflags">
+ </option>
+ <option
+ name="%Option.Posix.Linker.XLinker"
+ category="linux.gnu.c.solink.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="linux.gnu.c.solink.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="linux.gnu.c.solink.category.other"
+ valueType="userObjs"
+ id="linux.gnu.c.solink.userobjs">
+ </option>
+ </tool>
+ <tool
+ natureFilter="ccnature"
+ sources="o"
+ name="%ToolName.linker.cpp"
+ outputFlag="-o"
+ outputs="so"
+ outputPrefix="lib"
+ command="g++ -shared"
+ id="cdt.build.tool.linux.gnu.solink">
<optionCategory
- owner="cdt.build.tool.linux.gnu.link"
+ owner="cdt.build.tool.linux.gnu.solink"
name="%OptionCategory.General"
- id="linux.gnu.linker.category.options">
+ id="linux.gnu.solink.category.options">
</optionCategory>
<option
defaultValue="false"
name="%Option.Posix.Linker.NoStartFiles"
- category="linux.gnu.linker.category.options"
+ category="linux.gnu.solink.category.options"
command="-nostartfiles"
valueType="boolean"
- id="linux.gnu.linker.options.nostart">
+ id="linux.gnu.solink.options.nostart">
</option>
<option
defaultValue="false"
name="%Option.Posix.Linker.NoDefLibs"
- category="linux.gnu.linker.category.options"
+ category="linux.gnu.solink.category.options"
command="-nodefaultlibs"
valueType="boolean"
- id="linux.gnu.linker.options.nodeflibs">
+ id="linux.gnu.solink.options.nodeflibs">
</option>
<option
defaultValue="false"
name="%Option.Posix.Linker.NoStdLibs"
- category="linux.gnu.linker.category.options"
+ category="linux.gnu.solink.category.options"
command="-nostdlib"
valueType="boolean"
- id="linux.gnu.linker.options.nostdlibs">
+ id="linux.gnu.solink.options.nostdlibs">
</option>
<option
defaultValue="false"
name="%Option.Posix.Linker.Strip"
- category="linux.gnu.linker.category.options"
+ category="linux.gnu.solink.category.options"
command="-s"
valueType="boolean"
- id="linux.gnu.linker.options.strip">
- </option>
- <option
- defaultValue="false"
- name="%Option.Posix.Linker.Static"
- category="linux.gnu.linker.category.options"
- command="-static"
- valueType="boolean"
- id="linux.gnu.linker.options.noshared">
+ id="linux.gnu.solink.options.strip">
</option>
<optionCategory
- owner="cdt.build.tool.linux.gnu.link"
+ owner="cdt.build.tool.linux.gnu.solink"
name="%OptionCategory.Libs"
- id="linux.gnu.linker.category.libs">
+ id="linux.gnu.solink.category.libs">
</optionCategory>
<option
name="%Option.Posix.Libs"
- category="linux.gnu.linker.category.libs"
+ category="linux.gnu.solink.category.libs"
command="-l"
valueType="libs"
- id="linux.gnu.linker.libs.libs">
+ id="linux.gnu.solink.libs.libs">
</option>
<option
name="%Option.Posix.Libsearch"
- category="linux.gnu.linker.category.libs"
+ category="linux.gnu.solink.category.libs"
command="-L"
valueType="stringList"
- id="linux.gnu.linker.libs.paths">
+ id="linux.gnu.solink.libs.paths">
</option>
<optionCategory
- owner="cdt.build.tool.linux.gnu.link"
+ owner="cdt.build.tool.linux.gnu.solink"
name="%OptionCategory.Misc"
- id="linux.gnu.linker.category.other">
+ id="linux.gnu.solink.category.other">
</optionCategory>
<option
name="%Option.Posix.Linker.Flags"
- category="linux.gnu.linker.category.other"
+ category="linux.gnu.solink.category.other"
valueType="string"
- id="linux.gnu.linker.libs.flags">
+ id="linux.gnu.solink.libs.flags">
</option>
<option
name="%Option.Posix.Linker.XLinker"
- category="linux.gnu.linker.category.other"
+ category="linux.gnu.solink.category.other"
command="-Xlinker"
valueType="stringList"
- id="linux.gnu.linker.options.other">
+ id="linux.gnu.solink.options.other">
</option>
<option
name="%Option.Posix.UserObjs"
- category="linux.gnu.linker.category.other"
+ category="linux.gnu.solink.category.other"
valueType="userObjs"
- id="linux.gnu.linker.userobjs">
+ id="linux.gnu.solink.userobjs">
</option>
</tool>
</target>
<target
isTest="false"
- name="Linux Shared Library"
+ name="Linux Static Library"
parent="linux.gnu"
binaryParser="org.eclipse.cdt.core.ELF"
- defaultExtension="so"
+ defaultExtension="a"
isAbstract="false"
- id="linux.gnu.so">
+ id="linux.gnu.lib">
<configuration
name="%ConfigName.Rel"
- id="linux.gnu.so.release">
+ id="linux.gnu.lib.release">
<toolReference
id="cdt.build.tool.linux.gnu.compiler">
<optionReference
@@ -1268,7 +2410,7 @@
</configuration>
<configuration
name="%ConfigName.Dbg"
- id="linux.gnu.so.debug">
+ id="linux.gnu.lib.debug">
<toolReference
id="cdt.build.tool.linux.gnu.compiler">
<optionReference
@@ -1282,167 +2424,330 @@
</toolReference>
</configuration>
<tool
+ natureFilter="both"
sources="o"
- name="%ToolName.linker"
- outputFlag="-o"
- outputs="so"
+ name="%ToolName.archiver"
+ outputs="a"
outputPrefix="lib"
- command="g++ -shared"
- id="cdt.build.tool.linux.gnu.solink">
+ command="ar"
+ id="cdt.build.tool.linux.gnu.lib">
<optionCategory
- owner="cdt.build.tool.linux.gnu.solink"
+ owner="cdt.build.tool.linux.gnu.lib"
name="%OptionCategory.General"
- id="linux.gnu.solink.category.options">
+ id="linux.gnu.lib.category.general">
+ </optionCategory>
+ <option
+ defaultValue="-r"
+ name="Archiver Flags"
+ category="linux.gnu.lib.category.general"
+ valueType="string"
+ id="linux.gnu.lib.flags">
+ </option>
+ </tool>
+ </target>
+ <target
+ name="Solaris"
+ id="solaris.gnu"
+ cleanCommand="rm -rf"
+ isTest="false"
+ isAbstract="true"
+ makeCommand="make"
+ binaryParser="org.eclipse.cdt.core.ELF"
+ makeFlags="-k"
+ osList="solaris">
+ <tool
+ natureFilter="cnature"
+ sources="c"
+ name="%ToolName.compiler.c"
+ headerExtensions="h"
+ outputFlag="-o"
+ outputs="o"
+ command="gcc"
+ id="cdt.build.tool.solaris.gnu.c.compiler">
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
+ name="%OptionCategory.Preproc"
+ id="solaris.gnu.c.compiler.category.preprocessor">
</optionCategory>
<option
defaultValue="false"
- name="%Option.Posix.Linker.NoStartFiles"
- category="linux.gnu.solink.category.options"
- command="-nostartfiles"
+ name="%Option.Posix.Nostdinc"
+ category="solaris.gnu.c.compiler.category.preprocessor"
+ command="-nostdinc"
valueType="boolean"
- id="linux.gnu.solink.options.nostart">
+ id="solaris.gnu.c.compiler.preprocessor.nostdinc">
</option>
<option
defaultValue="false"
- name="%Option.Posix.Linker.NoDefLibs"
- category="linux.gnu.solink.category.options"
- command="-nodefaultlibs"
+ name="%Option.Posix.PreprocOnly"
+ category="solaris.gnu.c.compiler.category.preprocessor"
+ command="-E"
valueType="boolean"
- id="linux.gnu.solink.options.nodeflibs">
+ id="solaris.gnu.c.compiler.preprocessor.preprocess">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
+ name="Symbols"
+ id="solaris.gnu.c.compiler.category.symbols">
+ </optionCategory>
+ <option
+ name="%Option.Posix.DefSym"
+ category="solaris.gnu.c.compiler.category.symbols"
+ command="-D"
+ valueType="definedSymbols"
+ id="solaris.gnu.c.preprocessor.def.symbols">
+ <listOptionValue
+ builtIn="true"
+ value="sun">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="sparc">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="unix">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__svr4__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__SVR4">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__GCC_NEW_VARARGS__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__sun__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__sparc__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__unix__">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__sun">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__sparc">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__unix">
+ </listOptionValue>
+ <listOptionValue
+ builtIn="true"
+ value="__OPTIMIZE__">
+ </listOptionValue>
+ </option>
+ <option
+ name="%Option.Posix.UndefSym"
+ category="solaris.gnu.c.compiler.category.symbols"
+ command="-U"
+ valueType="stringList"
+ id="solaris.gnu.c.preprocessor.undef.symbol">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
+ name="%OptionCategory.Dirs"
+ id="solaris.gnu.c.compiler.category.dirs">
+ </optionCategory>
+ <option
+ name="Include Paths"
+ category="solaris.gnu.c.compiler.category.dirs"
+ command="-I"
+ valueType="includePath"
+ id="solaris.gnu.c.compiler.general.include.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
+ name="%OptionCategory.Optimize"
+ id="solaris.gnu.c.compiler.category.optimization">
+ </optionCategory>
+ <option
+ name="Optimization Level"
+ category="solaris.gnu.c.compiler.category.optimization"
+ valueType="enumerated"
+ id="solaris.gnu.c.compiler.general.optimization.level">
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.None"
+ isDefault="false"
+ command="-O0"
+ id="solaris.gnu.c.optimization.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.Optimize"
+ command="-O1"
+ id="solaris.gnu.c.optimization.level.optimize">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.More"
+ isDefault="true"
+ command="-O2"
+ id="solaris.gnu.c.optimization.level.more">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="%Option.Posix.Optimize.Most"
+ command="-O3"
+ id="solaris.gnu.c.optimization.level.most">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other optimization flags"
+ category="solaris.gnu.c.compiler.category.optimization"
+ valueType="string"
+ id="solaris.gnu.c.compiler.optimization.flags">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
+ name="%OptionCategory.Debug"
+ id="solaris.gnu.c.compiler.category.debug">
+ </optionCategory>
+ <option
+ name="Debug Level"
+ category="solaris.gnu.c.compiler.category.debug"
+ valueType="enumerated"
+ id="solaris.c.compiler.debugging.level">
+ <enumeratedOptionValue
+ name="None"
+ isDefault="false"
+ id="solaris.gnu.c.debugging.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Minimal (-g1)"
+ command="-g1"
+ id="solaris.gnu.c.debugging.level.minimal">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Default (-g)"
+ isDefault="true"
+ command="-g"
+ id="solaris.gnu.c.debugging.level.default">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Maximum (-g3)"
+ isDefault="false"
+ command="-g3"
+ id="solaris.gnu.c.debugging.level.max">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other debugging flags"
+ category="solaris.gnu.c.compiler.category.debug"
+ valueType="string"
+ id="solaris.gnu.c.compiler.debugging.other">
</option>
<option
defaultValue="false"
- name="%Option.Posix.Linker.NoStdLibs"
- category="linux.gnu.solink.category.options"
- command="-nostdlib"
+ name="Generate gprof information (-pg)"
+ category="solaris.gnu.c.compiler.category.debug"
+ command="-pg"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.debugging.gprof">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate prof information (-p)"
+ category="solaris.gnu.c.compiler.category.debug"
+ command="-p"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.debugging.prof">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
+ name="%OptionCategory.Warn"
+ id="solaris.c.compiler.category.warnings">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Check syntax only (-fsyntax-only)"
+ category="solaris.c.compiler.category.warnings"
+ command="-fsyntax-only"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.warnings.syntax">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic (-pedantic)"
+ category="solaris.c.compiler.category.warnings"
+ command="-pedantic"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.warnings.pedantic">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic warnings as errors (-pedantic-errors)"
+ category="solaris.c.compiler.category.warnings"
+ command="-pedantic-errors"
valueType="boolean"
- id="linux.gnu.solink.options.nostdlibs">
+ id="solaris.gnu.c.compiler.warnings.pedantic.error">
</option>
<option
defaultValue="false"
- name="%Option.Posix.Linker.Strip"
- category="linux.gnu.solink.category.options"
- command="-s"
+ name="Inhibit all warnings (-w)"
+ category="solaris.c.compiler.category.warnings"
+ command="-w"
valueType="boolean"
- id="linux.gnu.solink.options.strip">
+ id="solaris.gnu.c.compiler.warnings.nowarn">
</option>
- <optionCategory
- owner="cdt.build.tool.linux.gnu.solink"
- name="%OptionCategory.Libs"
- id="linux.gnu.solink.category.libs">
- </optionCategory>
<option
- name="%Option.Posix.Libs"
- category="linux.gnu.solink.category.libs"
- command="-l"
- valueType="libs"
- id="linux.gnu.solink.libs.libs">
+ defaultValue="true"
+ name="All warnings (-Wall)"
+ category="solaris.c.compiler.category.warnings"
+ command="-Wall"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.warnings.allwarn">
</option>
<option
- name="%Option.Posix.Libsearch"
- category="linux.gnu.solink.category.libs"
- command="-L"
- valueType="stringList"
- id="linux.gnu.solink.libs.paths">
+ defaultValue="false"
+ name="Warnings as errors (-werror)"
+ category="solaris.c.compiler.category.warnings"
+ command="-werror"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.warnings.toerrors">
</option>
<optionCategory
- owner="cdt.build.tool.linux.gnu.solink"
+ owner="cdt.build.tool.solaris.gnu.c.compiler"
name="%OptionCategory.Misc"
- id="linux.gnu.solink.category.other">
+ id="solaris.c.compiler.category.other">
</optionCategory>
<option
- name="%Option.Posix.Linker.Flags"
- category="linux.gnu.solink.category.other"
+ defaultValue="-c"
+ name="%Option.OtherFlags"
+ category="solaris.c.compiler.category.other"
valueType="string"
- id="linux.gnu.solink.libs.flags">
- </option>
- <option
- name="%Option.Posix.Linker.XLinker"
- category="linux.gnu.solink.category.other"
- command="-Xlinker"
- valueType="stringList"
- id="linux.gnu.solink.options.other">
+ id="solaris.gnu.c.compiler.misc.other">
</option>
<option
- name="%Option.Posix.UserObjs"
- category="linux.gnu.solink.category.other"
- valueType="userObjs"
- id="linux.gnu.solink.userobjs">
+ defaultValue="false"
+ name="%Option.Posix.Verbose"
+ category="solaris.c.compiler.category.other"
+ command="-v"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.misc.verbose">
</option>
- </tool>
- </target>
- <target
- isTest="false"
- name="Linux Static Library"
- parent="linux.gnu"
- binaryParser="org.eclipse.cdt.core.ELF"
- defaultExtension="a"
- isAbstract="false"
- id="linux.gnu.lib">
- <configuration
- name="%ConfigName.Rel"
- id="linux.gnu.lib.release">
- <toolReference
- id="cdt.build.tool.linux.gnu.compiler">
- <optionReference
- defaultValue="Optimize most (-O3)"
- id="linux.gnu.compiler.optimization.level">
- </optionReference>
- <optionReference
- defaultValue="None"
- id="linux.gnu.compiler.debugging.level">
- </optionReference>
- </toolReference>
- </configuration>
- <configuration
- name="%ConfigName.Dbg"
- id="linux.gnu.lib.debug">
- <toolReference
- id="cdt.build.tool.linux.gnu.compiler">
- <optionReference
- defaultValue="None (-O0)"
- id="linux.gnu.compiler.optimization.level">
- </optionReference>
- <optionReference
- defaultValue="Maximum (-g3)"
- id="linux.gnu.compiler.debugging.level">
- </optionReference>
- </toolReference>
- </configuration>
- <tool
- sources="o"
- name="%ToolName.archiver"
- outputs="a"
- outputPrefix="lib"
- command="ar"
- id="cdt.build.tool.linux.gnu.lib">
- <optionCategory
- owner="cdt.build.tool.linux.gnu.lib"
- name="%OptionCategory.General"
- id="linux.gnu.lib.category.general">
- </optionCategory>
<option
- defaultValue="-r"
- name="Archiver Flags"
- category="linux.gnu.lib.category.general"
- valueType="string"
- id="linux.gnu.lib.flags">
+ defaultValue="false"
+ name="%Option.Posix.Ansi"
+ category="solaris.c.compiler.category.other"
+ command="-ansi"
+ valueType="boolean"
+ id="solaris.gnu.c.compiler.misc.ansi">
</option>
</tool>
- </target>
- <target
- name="Solaris"
- id="solaris.gnu"
- cleanCommand="rm -rf"
- isTest="false"
- isAbstract="true"
- makeCommand="make"
- binaryParser="org.eclipse.cdt.core.ELF"
- makeFlags="-k"
- osList="solaris">
<tool
+ natureFilter="ccnature"
sources="c,C,cc,cxx,cpp"
- name="%ToolName.compiler"
+ name="%ToolName.compiler.cpp"
headerExtensions="h,H,hpp"
outputFlag="-o"
outputs="o"
@@ -1754,8 +3059,105 @@
</toolReference>
</configuration>
<tool
+ natureFilter="cnature"
+ sources="o"
+ name="%ToolName.linker.c"
+ outputFlag="-o"
+ command="gcc"
+ id="cdt.build.tool.solaris.gnu.c.link">
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.link"
+ name="%OptionCategory.General"
+ id="solaris.gnu.c.linker.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="solaris.gnu.c.linker.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="solaris.gnu.c.link.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="solaris.gnu.c.linker.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="solaris.gnu.c.link.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="solaris.gnu.c.linker.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="solaris.gnu.c.link.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="solaris.gnu.c.linker.category.options"
+ command="-s"
+ valueType="boolean"
+ id="solaris.gnu.c.link.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="solaris.gnu.c.linker.category.general"
+ command="-static"
+ valueType="boolean"
+ id="solaris.gnu.c.link.options.noshared">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.link"
+ name="%OptionCategory.Libs"
+ id="solaris.gnu.c.linker.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="solaris.gnu.c.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="solaris.gnu.c.link.libs">
+ </option>
+ <option
+ name="%Option.Posix.Libsearch"
+ category="solaris.gnu.c.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="solaris.gnu.c.link.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.link"
+ name="%OptionCategory.Misc"
+ id="solaris.gnu.c.linker.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="solaris.gnu.c.linker.category.other"
+ valueType="string"
+ id="solaris.gnu.c.link.ldflags">
+ </option>
+ <option
+ name="%Option.Posix.Linker.XLinker"
+ category="solaris.gnu.c.linker.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="solaris.gnu.c.link.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="solaris.gnu.c.linker.category.other"
+ valueType="userObjs"
+ id="solaris.gnu.c.link.ld.userobjs">
+ </option>
+ </tool>
+ <tool
+ natureFilter="ccnature"
sources="o"
- name="%ToolName.linker"
+ name="%ToolName.linker.cpp"
outputFlag="-o"
command="g++"
id="cdt.build.tool.solaris.gnu.link">
@@ -1888,8 +3290,107 @@
</toolReference>
</configuration>
<tool
+ natureFilter="cnature"
+ sources="o"
+ name="%ToolName.linker.c"
+ outputFlag="-o"
+ outputs="so"
+ outputPrefix="lib"
+ command="gcc -shared"
+ id="cdt.build.tool.solaris.gnu.c.solink">
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.solink"
+ name="%OptionCategory.General"
+ id="solaris.gnu.c.solink.category.general">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStartFiles"
+ category="solaris.gnu.c.solink.category.general"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="solaris.gnu.c.solink.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoDefLibs"
+ category="solaris.gnu.c.solink.category.general"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="solaris.gnu.c.solink.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.NoStdLibs"
+ category="solaris.gnu.c.solink.category.general"
+ command="-nostdlib"
+ valueType="boolean"
+ id="solaris.gnu.c.solink.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Strip"
+ category="solaris.gnu.c.solink.category.general"
+ command="-s"
+ valueType="boolean"
+ id="solaris.gnu.c.solink.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="%Option.Posix.Linker.Static"
+ category="solaris.gnu.c.solink.category.general"
+ command="-static"
+ valueType="boolean"
+ id="solaris.gnu.c.solink.options.noshared">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.solink"
+ name="%OptionCategory.Libs"
+ id="solaris.gnu.c.solink.category.libs">
+ </optionCategory>
+ <option
+ name="%Option.Posix.Libs"
+ category="solaris.gnu.c.solink.category.libs"
+ command="-l"
+ valueType="libs"
+ id="solaris.gnu.c.solink.libs">
+ </option>
+ <option
+ name="%Option.Posix.Libsearch"
+ category="solaris.gnu.c.solink.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="solaris.gnu.c.solink.paths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.c.solink"
+ name="%OptionCategory.Misc"
+ id="solaris.gnu.c.solink.category.other">
+ </optionCategory>
+ <option
+ name="Linker Flags"
+ category="solaris.gnu.c.solink.category.other"
+ valueType="string"
+ id="solaris.gnu.c.solink.ldflags">
+ </option>
+ <option
+ name="%Option.Posix.Linker.XLinker"
+ category="solaris.gnu.c.solink.category.other"
+ command="-Xlinker"
+ valueType="stringList"
+ id="solaris.gnu.c.solink.options.other">
+ </option>
+ <option
+ name="%Option.Posix.UserObjs"
+ category="solaris.gnu.c.solink.category.other"
+ valueType="userObjs"
+ id="solaris.gnu.c.solink.userobjs">
+ </option>
+ </tool>
+ <tool
+ natureFilter="ccnature"
sources="o"
- name="%ToolName.linker"
+ name="%ToolName.linker.cpp"
outputFlag="-o"
outputs="so"
outputPrefix="lib"
@@ -2016,6 +3517,7 @@
</toolReference>
</configuration>
<tool
+ natureFilter="both"
sources="o"
name="%ToolName.archiver"
outputs="a"
Index: src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java,v
retrieving revision 1.2
diff -u -r1.2 NewManagedProjectWizard.java
--- src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java 22 Sep 2003 02:31:53 -0000 1.2
+++ src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java 1 Oct 2003 19:33:23 -0000
@@ -11,6 +11,8 @@
* IBM Rational Software - Initial API and implementation
* **********************************************************************/
+import java.util.Random;
+
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.ICDescriptor;
import org.eclipse.cdt.managedbuilder.core.BuildException;
@@ -113,9 +115,14 @@
artifactName += parent.getDefaultExtension().length() == 0 ? "" : "." + parent.getDefaultExtension();
newTarget.setBuildArtifact(artifactName);
IConfiguration [] selectedConfigs = targetConfigurationPage.getSelectedConfigurations();
+ Random r = new Random();
for (int i = 0; i < selectedConfigs.length; i++) {
IConfiguration config = selectedConfigs[i];
- newTarget.createConfiguration(config, config.getId() + "." + i);
+ int id = r.nextInt();
+ if (id < 0) {
+ id *= -1;
+ }
+ newTarget.createConfiguration(config, artifactName + "." + config.getId() + "." + id);
}
// Now add the first config in the list as the default
IConfiguration[] newConfigs = newTarget.getConfigurations();