Hi All,
I'm just trying to get this into tomorrow's build, so the details are a
bit skimpy in the change log. I have added 6 new build targets; an
executable, shared library, and static library using Gnu tools on Solaris
and Linux. There is a bit of a change in the way the build information
deals with targets that do not specify an extension (like executables on
POSIX systems). I have not updated the JUnit tests because this doesn't
merit it. However, the changes have been tested on Solaris, Linux and
Windows, so there's definitely no regression.
Sean Evoy
Rational Software - IBM Software Group
Ottawa, Ontario, Canada
------------------------------------------------------------------------
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.140
diff -u -r1.140 ChangeLog
--- ChangeLog 13 Aug 2003 17:45:37 -0000 1.140
+++ ChangeLog 14 Aug 2003 19:39:24 -0000
@@ -1,3 +1,14 @@
+2003-08-14 Sean Evoy
+ Added initial toolchain description for Solaris and Linux targets using Gnu tools.
+ * plugin.xml
+
+ Moved tool and option category names into the properties for eventual I18N
+ * plugin.properties
+
+ For build targets without an extension, the new project wizard was appending a 'dot' to the
+ name. It no loonger does this.
+ * build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java
+
2003-08-13 Sean Evoy
A simple change to add transparency information to the build property page
GIFs. They were not being drawn properly on Solaris/Motif and would probably
Index: plugin.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/plugin.properties,v
retrieving revision 1.23
diff -u -r1.23 plugin.properties
--- plugin.properties 14 Jul 2003 15:34:57 -0000 1.23
+++ plugin.properties 14 Aug 2003 19:39:24 -0000
@@ -88,11 +88,21 @@
DeleteTaskAction.label=Delete C/C++ Markers
# Build Model Names
+ConfigName.Rel=Release
+ConfigName.Dbg=Debug
ToolName.preprocessor = Preprocessor
ToolName.compiler = Compiler
ToolName.archiver = Archiver
ToolName.linker = Linker
-ToolName.command = Command Line
+OptionCategory.Preproc = Preprocessor
+OptionCategory.Dirs = Directories
+OptionCategory.General = General
+OptionCategory.CLSum = Command Line Summary
+OptionCategory.Optimize=Optimization
+OptionCategory.Debug=Debugging
+OptionCategory.Warn=Warnings
+OptionCategory.Misc=Miscelaneous
+OptionCategory.Libs=Libraries
# C/C++ Search
CSearchPage.label= C/C++ Search
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/plugin.xml,v
retrieving revision 1.40
diff -u -r1.40 plugin.xml
--- plugin.xml 13 Aug 2003 14:57:13 -0000 1.40
+++ plugin.xml 14 Aug 2003 19:39:24 -0000
@@ -268,8 +268,8 @@
id="org.eclipse.cdt.ui.ceditor"
point="org.eclipse.ui.editors">
<editor
- default="true"
name="%CEditor.name"
+ default="true"
icon="icons/full/obj16/c_file_obj.gif"
extensions="c, h, cc, hh, cpp, cxx, hpp"
contributorClass="org.eclipse.cdt.internal.ui.editor.CEditorActionContributor"
@@ -638,7 +638,7 @@
id="org.eclipse.cdt.build.tool.cygwin.compiler">
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.compiler"
- name="Preprocessor"
+ name="%OptionCategory.Preproc"
id="cygwin.compiler.category.preprocessor">
</optionCategory>
<option
@@ -657,7 +657,7 @@
</option>
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.compiler"
- name="General"
+ name="%OptionCategory.General"
id="cygwin.compiler.category.general">
</optionCategory>
<option
@@ -739,7 +739,7 @@
</option>
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.compiler"
- name="Command Line"
+ name="%OptionCategory.CLSum"
id="cygwin.compiler.category.commandline">
</optionCategory>
<option
@@ -757,11 +757,11 @@
isAbstract="false"
id="cygwin.exec">
<configuration
- name="Release"
+ name="%ConfigName.Rel"
id="cygwin.exec.release">
</configuration>
<configuration
- name="Debug"
+ name="%ConfigName.Dbg"
id="cygwin.exec.debug">
</configuration>
<tool
@@ -772,11 +772,10 @@
id="org.eclipse.cdt.build.tool.cygwin.link">
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.link"
- name="General"
+ name="%OptionCategory.General"
id="cygwin.linker.category.general">
</optionCategory>
<option
- defaultValue="-o"
name="Linker Flags"
category="cygwin.linker.category.general"
valueType="string"
@@ -798,7 +797,7 @@
</option>
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.link"
- name="Command Line"
+ name="%OptionCategory.CLSum"
id="cygwin.linker.category.commandline">
</optionCategory>
<option
@@ -816,22 +815,23 @@
isAbstract="false"
id="cygwin.so">
<configuration
- name="Release"
+ name="%ConfigName.Rel"
id="cygwin.so.release">
</configuration>
<configuration
- name="Debug"
+ name="%ConfigName.Dbg"
id="cygwin.so.debug">
</configuration>
<tool
name="%ToolName.linker"
outputFlag="-o"
outputs="dll"
+ outputPrefix="lib"
command="g++ -shared"
id="org.eclipse.cdt.build.tool.cygwin.solink">
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.solink"
- name="General"
+ name="%OptionCategory.General"
id="cygwin.solink.category.general">
</optionCategory>
<option
@@ -865,11 +865,11 @@
isAbstract="false"
id="cygwin.exp">
<configuration
- name="Release"
+ name="%ConfigName.Rel"
id="cygwin.exp.release">
</configuration>
<configuration
- name="Debug"
+ name="%ConfigName.Dbg"
id="cygwin.exp.debug">
</configuration>
<tool
@@ -881,7 +881,7 @@
id="org.eclipse.cdt.build.tool.cygwin.explink">
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.explink"
- name="General"
+ name="%OptionCategory.General"
id="cygwin.explink.category.general">
</optionCategory>
<option
@@ -915,11 +915,11 @@
isAbstract="false"
id="cygwin.lib">
<configuration
- name="Release"
+ name="%ConfigName.Rel"
id="cygwin.lib.release">
</configuration>
<configuration
- name="Debug"
+ name="%ConfigName.Dbg"
id="cygwin.lib.debug">
</configuration>
<tool
@@ -930,7 +930,7 @@
id="org.eclipse.cdt.build.tool.cygwin.ar">
<optionCategory
owner="org.eclipse.cdt.build.tool.cygwin.ar"
- name="General"
+ name="%OptionCategory.General"
id="cygwin.ar.category.general">
</optionCategory>
<option
@@ -944,154 +944,916 @@
</target>
<target
makeFlags="-k"
- isTest="true"
+ isTest="false"
cleanCommand="rm -rf"
name="Linux"
isAbstract="true"
makeCommand="make"
- id="linux">
+ id="linux.gnu">
<tool
- name="Compiler"
+ sources="c,C,cc,cxx,cpp"
+ name="%ToolName.compiler"
outputFlag="-o"
- id="linux.compiler">
+ outputs="o"
+ command="g++"
+ id="cdt.build.tool.linux.gnu.compiler">
<optionCategory
- owner="linux.compiler"
- name="Optimization Options"
- id="linux.compiler.optimization">
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Preproc"
+ id="linux.gnu.compiler.category.preprocessor">
</optionCategory>
<option
- name="Compiler Flags"
- valueType="string"
- id="linux.compiler.flags">
+ defaultValue="false"
+ name="Do not search system directories (-nostdinc)"
+ category="linux.gnu.compiler.category.preprocessor"
+ command="-nostdinc"
+ valueType="boolean"
+ id="linux.gnu.compiler.preprocessor.nostdinc">
</option>
<option
- name="Optimization Flags"
- category="linux.compiler.optimization"
+ defaultValue="false"
+ name="Preprocess only (-E)"
+ category="linux.gnu.compiler.category.preprocessor"
+ command="-E"
+ valueType="boolean"
+ id="linux.gnu.compiler.preprocessor.preprocess">
+ </option>
+ <option
+ name="Defined Symbols (-D)"
+ category="linux.gnu.compiler.category.preprocessor"
+ command="-D"
+ valueType="definedSymbols"
+ id="linux.gnu.compiler.preprocessor.def">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Dirs"
+ id="linux.gnu.compiler.category.dirs">
+ </optionCategory>
+ <option
+ name="Include search paths (-I)"
+ category="linux.gnu.compiler.category.dirs"
+ command="-I"
+ valueType="stringList"
+ id="linux.gnu.compiler.dirs.incpaths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.compiler"
+ name="%OptionCategory.Optimize"
+ id="linux.gnu.compiler.category.optimization">
+ </optionCategory>
+ <option
+ name="Optimization Level"
+ category="linux.gnu.compiler.category.optimization"
value="-O"
+ valueType="enumerated"
+ id="linux.gnu.compiler.optimization.level">
+ <enumeratedOptionValue
+ name="None (-O0)"
+ command="-O0"
+ id="linux.gnu.compiler.optimization.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Optimize (-O1)"
+ command="-O1"
+ id="linux.gnu.compiler.optimization.level.optimize">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Optimize more (-O2)"
+ isDefault="true"
+ command="-O2"
+ id="linux.gnu.compiler.optimization.level.more">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Optimize most (-O3)"
+ command="-O3"
+ id="linux.gnu.compiler.optimization.level.most">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ 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="false"
+ name="Verbose (-v)"
+ category="linux.gnu.compiler.category.other"
+ command="-v"
+ valueType="boolean"
+ id="linux.gnu.compiler.other.verbose">
+ </option>
+ <option
+ defaultValue="-c"
+ name="Other flags"
+ category="linux.gnu.compiler.category.other"
valueType="string"
- id="linux.compiler.optimizationFlags">
+ id="linux.gnu.compiler.other.other">
</option>
</tool>
</target>
<target
- isTest="true"
+ isTest="false"
name="Linux Executable"
- parent="linux"
+ parent="linux.gnu"
isAbstract="false"
- id="linux.exec">
- <tool
- name="Linker"
- outputFlag="-o"
- id="org.eclipse.cdt.ui.tests.tool.linux.link">
- </tool>
+ id="linux.gnu.exec">
<configuration
- name="Release"
- id="linux.exec.release">
+ name="%ConfigName.Rel"
+ id="linux.gnu.exec.release">
</configuration>
<configuration
- name="Debug"
- id="linux.exec.debug">
+ name="%ConfigName.Dbg"
+ id="linux.gnu.exec.debug">
</configuration>
+ <tool
+ sources="o"
+ name="%ToolName.linker"
+ outputFlag="-o"
+ command="g++"
+ id="cdt.build.tool.linux.gnu.link">
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.link"
+ name="%OptionCategory.General"
+ id="linux.gnu.linker.category.options">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Do not use standard start files (-nostartfiles)"
+ category="linux.gnu.linker.category.options"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="linux.gnu.linker.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="Do not use default libraries (-nodefaultlibs)"
+ category="linux.gnu.linker.category.options"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="linux.gnu.linker.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="No startup or default libs (-nostdlib)"
+ category="linux.gnu.linker.category.options"
+ command="-nostdlib"
+ valueType="boolean"
+ id="linux.gnu.linker.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="Remove symbol table (-s)"
+ category="linux.gnu.linker.category.options"
+ command="-s"
+ valueType="boolean"
+ id="linux.gnu.linker.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="No shared libraries (-static)"
+ category="linux.gnu.linker.category.options"
+ command="-static"
+ valueType="boolean"
+ id="linux.gnu.linker.options.noshared">
+ </option>
+ <option
+ name="Other options (-Xlinker [option])"
+ category="linux.gnu.linker.category.options"
+ command="-Xlinker"
+ valueType="stringList"
+ id="linux.gnu.linker.options.other">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.link"
+ name="%OptionCategory.Libs"
+ id="linux.gnu.linker.category.libs">
+ </optionCategory>
+ <option
+ name="Libraries"
+ category="linux.gnu.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="linux.gnu.linker.libs.libs">
+ </option>
+ <option
+ name="Library search path"
+ category="linux.gnu.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="linux.gnu.linker.libs.paths">
+ </option>
+ </tool>
</target>
<target
- isTest="true"
+ isTest="false"
name="Linux Shared Library"
- parent="linux"
- defaultExtension=".so"
+ parent="linux.gnu"
+ defaultExtension="so"
isAbstract="false"
- id="linux.so">
+ id="linux.gnu.so">
+ <configuration
+ name="%ConfigName.Rel"
+ id="linux.gnu.so.release">
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="linux.gnu.so.debug">
+ </configuration>
<tool
- name="Linker"
+ sources="o"
+ name="%ToolName.linker"
outputFlag="-o"
- id="org.eclipse.cdt.ui.tests.tool.linux.solink">
+ outputs="so"
+ outputPrefix="lib"
+ command="g++ -shared"
+ id="cdt.build.tool.linux.gnu.solink">
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.solink"
+ name="%OptionCategory.General"
+ id="linux.gnu.solink.category.options">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Do not use standard start files (-nostartfiles)"
+ category="linux.gnu.solink.category.options"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="linux.gnu.solink.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="Do not use default libraries (-nodefaultlibs)"
+ category="linux.gnu.solink.category.options"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="linux.gnu.solink.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="No startup or default libs (-nostdlib)"
+ category="linux.gnu.solink.category.options"
+ command="-nostdlib"
+ valueType="boolean"
+ id="linux.gnu.solink.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="Remove symbol table (-s)"
+ category="linux.gnu.solink.category.options"
+ command="-s"
+ valueType="boolean"
+ id="linux.gnu.solink.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="No shared libraries (-static)"
+ category="linux.gnu.solink.category.options"
+ command="-static"
+ valueType="boolean"
+ id="linux.gnu.solink.options.noshared">
+ </option>
+ <option
+ defaultValue="false"
+ name="Bind global symbol references (-symbolic)"
+ category="linux.gnu.solink.category.options"
+ command="-symbolic"
+ valueType="boolean"
+ id="linux.gnu.solink.options.symbolic">
+ </option>
+ <option
+ name="Other options (-Xlinker [option])"
+ category="linux.gnu.solink.category.options"
+ command="-Xlinker"
+ valueType="stringList"
+ id="linux.gnu.solink.options.other">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.linux.gnu.solink"
+ name="%OptionCategory.Libs"
+ id="linux.gnu.solink.category.libs">
+ </optionCategory>
+ <option
+ name="Libraries"
+ category="linux.gnu.solink.category.libs"
+ command="-l"
+ valueType="libs"
+ id="linux.gnu.solink.libs.libs">
+ </option>
+ <option
+ name="Library search path"
+ category="linux.gnu.solink.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="linux.gnu.solink.libs.paths">
+ </option>
</tool>
</target>
<target
- isTest="true"
+ isTest="false"
name="Linux Static Library"
- parent="linux"
- defaultExtension=".a"
+ parent="linux.gnu"
+ defaultExtension="a"
isAbstract="false"
- id="linux.lib">
+ id="linux.gnu.lib">
+ <configuration
+ name="%ConfigName.Rel"
+ id="linux.gnu.lib.release">
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="linux.gnu.lib.debug">
+ </configuration>
<tool
- name="Archiver"
- id="org.eclipse.cdt.ui.tests.tool.linux.ar">
+ 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">
+ </option>
</tool>
</target>
<target
makeFlags="-k"
- isTest="true"
+ isTest="false"
cleanCommand="rm -rf"
name="Solaris"
isAbstract="true"
makeCommand="make"
- id="solaris">
+ id="solaris.gnu">
<tool
- name="Compiler"
+ sources="c,C,cc,cxx,cpp"
+ name="%ToolName.compiler"
outputFlag="-o"
- id="solaris.compiler">
+ outputs="o"
+ command="g++"
+ id="cdt.build.tool.solaris.gnu.compiler">
<optionCategory
- owner="solaris.compiler"
- name="Optimization Options"
- id="solaris.compiler.optimization">
+ owner="cdt.build.tool.solaris.gnu.compiler"
+ name="%OptionCategory.Preproc"
+ id="solaris.gnu.compiler.category.preprocessor">
</optionCategory>
<option
- name="Compiler Flags"
- valueType="string"
- id="solaris.compiler.flags">
+ defaultValue="false"
+ name="Do not search system directories (-nostdinc)"
+ category="solaris.gnu.compiler.category.preprocessor"
+ command="-nostdinc"
+ valueType="boolean"
+ id="solaris.gnu.compiler.preprocessor.nostdinc">
</option>
<option
- name="Optimization Flags"
- category="solaris.compiler.optimization"
+ defaultValue="false"
+ name="Preprocess only (-E)"
+ category="solaris.gnu.compiler.category.preprocessor"
+ command="-E"
+ valueType="boolean"
+ id="solaris.gnu.compiler.preprocessor.preprocess">
+ </option>
+ <option
+ name="Defined Symbols (-D)"
+ category="solaris.gnu.compiler.category.preprocessor"
+ command="-D"
+ valueType="definedSymbols"
+ id="solaris.gnu.compiler.preprocessor.def">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.compiler"
+ name="%OptionCategory.Dirs"
+ id="solaris.gnu.compiler.category.dirs">
+ </optionCategory>
+ <option
+ name="Include search paths (-I)"
+ category="solaris.gnu.compiler.category.dirs"
+ command="-I"
+ valueType="stringList"
+ id="solaris.gnu.compiler.dirs.incpaths">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.compiler"
+ name="%OptionCategory.Optimize"
+ id="solaris.gnu.compiler.category.optimization">
+ </optionCategory>
+ <option
+ name="Optimization Level"
+ category="solaris.gnu.compiler.category.optimization"
value="-O"
+ valueType="enumerated"
+ id="solaris.gnu.compiler.optimization.level">
+ <enumeratedOptionValue
+ name="None (-O0)"
+ command="-O0"
+ id="solaris.gnu.compiler.optimization.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Optimize (-O1)"
+ command="-O1"
+ id="solaris.gnu.compiler.optimization.level.optimize">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Optimize more (-O2)"
+ isDefault="true"
+ command="-O2"
+ id="solaris.gnu.compiler.optimization.level.more">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Optimize most (-O3)"
+ command="-O3"
+ id="solaris.gnu.compiler.optimization.level.most">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other optimization flags"
+ category="solaris.gnu.compiler.category.optimization"
+ valueType="string"
+ id="solaris.compiler.optimization.flags">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.compiler"
+ name="%OptionCategory.Debug"
+ id="solaris.gnu.compiler.category.debug">
+ </optionCategory>
+ <option
+ name="Debug Level"
+ category="solaris.gnu.compiler.category.debug"
+ valueType="enumerated"
+ id="solaris.gnu.compiler.debugging.level">
+ <enumeratedOptionValue
+ name="None"
+ isDefault="false"
+ id="solaris.gnu.compiler.debugging.level.none">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Minimal (-g1)"
+ command="-g1"
+ id="solaris.gnu.compiler.debugging.level.minimal">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Default (-g)"
+ isDefault="true"
+ command="-g"
+ id="solaris.gnu.compiler.debugging.level.default">
+ </enumeratedOptionValue>
+ <enumeratedOptionValue
+ name="Maximum (-g3)"
+ isDefault="false"
+ command="-g3"
+ id="solaris.gnu.compiler.debugging.level.max">
+ </enumeratedOptionValue>
+ </option>
+ <option
+ name="Other debugging flags"
+ category="solaris.gnu.compiler.category.debug"
valueType="string"
- id="solaris.compiler.optimizationFlags">
+ id="solaris.gnu.compiler.debugging.other">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate prof information (-p)"
+ category="solaris.gnu.compiler.category.debug"
+ command="-p"
+ valueType="boolean"
+ id="solaris.gnu.compiler.debugging.prof">
+ </option>
+ <option
+ defaultValue="false"
+ name="Generate gprof information (-pg)"
+ category="solaris.gnu.compiler.category.debug"
+ command="-pg"
+ valueType="boolean"
+ id="solaris.gnu.compiler.debugging.gprof">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.compiler"
+ name="%OptionCategory.Warn"
+ id="solaris.gnu.compiler.category.warnings">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Check syntax only (-fsyntax-only)"
+ category="solaris.gnu.compiler.category.warnings"
+ command="-fsyntax-only"
+ valueType="boolean"
+ id="solaris.gnu.compiler.warnings.syntax">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic (-pedantic)"
+ category="solaris.gnu.compiler.category.warnings"
+ command="-pedantic"
+ valueType="boolean"
+ id="solaris.gnu.compiler.warnings.pedantic">
+ </option>
+ <option
+ defaultValue="false"
+ name="Pedantic warnings as errors (-pedantic-errors)"
+ category="solaris.gnu.compiler.category.warnings"
+ command="-pedantic-errors"
+ valueType="boolean"
+ id="solaris.gnu.compiler.warnings.pedantic.error">
+ </option>
+ <option
+ defaultValue="false"
+ name="Inhibit all warnings (-w)"
+ category="solaris.gnu.compiler.category.warnings"
+ command="-w"
+ valueType="boolean"
+ id="solaris.gnu.compiler.warnings.nowarn">
+ </option>
+ <option
+ defaultValue="true"
+ name="All warnings (-Wall)"
+ category="solaris.gnu.compiler.category.warnings"
+ command="-Wall"
+ valueType="boolean"
+ id="solaris.gnu.compiler.warnings.allwarn">
+ </option>
+ <option
+ defaultValue="false"
+ name="Warnings as errors (-werror)"
+ category="solaris.gnu.compiler.category.warnings"
+ command="-werror"
+ valueType="boolean"
+ id="solaris.gnu.compiler.warnings.toerrors">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.compiler"
+ name="%OptionCategory.Misc"
+ id="solaris.gnu.compiler.category.other">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Verbose (-v)"
+ category="solaris.gnu.compiler.category.other"
+ command="-v"
+ valueType="boolean"
+ id="solaris.gnu.compiler.other.verbose">
+ </option>
+ <option
+ defaultValue="-c"
+ name="Other flags"
+ category="solaris.gnu.compiler.category.other"
+ valueType="string"
+ id="solaris.gnu.compiler.other.other">
</option>
</tool>
</target>
<target
- isTest="true"
+ isTest="false"
name="Solaris Executable"
- parent="solaris"
+ parent="solaris.gnu"
isAbstract="false"
- id="solaris.exec">
- <tool
- name="Linker"
- outputFlag="-o"
- id="solaris.link">
- </tool>
+ id="solaris.gnu.exec">
<configuration
- name="Release"
- id="Solaris.exec.release">
+ name="%ConfigName.Rel"
+ id="solaris.gnu.exec.release">
</configuration>
<configuration
- name="Debug"
- id="solaris.exec.debug">
+ name="%ConfigName.Dbg"
+ id="solaris.gnu.exec.debug">
</configuration>
+ <tool
+ sources="o"
+ name="%ToolName.linker"
+ outputFlag="-o"
+ command="g++"
+ id="cdt.build.tool.solaris.gnu.link">
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.link"
+ name="%OptionCategory.General"
+ id="solaris.gnu.linker.category.options">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Do not use standard start files (-nostartfiles)"
+ category="solaris.gnu.linker.category.options"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="solaris.gnu.linker.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="Do not use default libraries (-nodefaultlibs)"
+ category="solaris.gnu.linker.category.options"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="solaris.gnu.linker.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="No startup or default libs (-nostdlib)"
+ category="solaris.gnu.linker.category.options"
+ command="-nostdlib"
+ valueType="boolean"
+ id="solaris.gnu.linker.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="Remove symbol table (-s)"
+ category="solaris.gnu.linker.category.options"
+ command="-s"
+ valueType="boolean"
+ id="solaris.gnu.linker.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="No shared libraries (-static)"
+ category="solaris.gnu.linker.category.options"
+ command="-static"
+ valueType="boolean"
+ id="solaris.gnu.linker.options.noshared">
+ </option>
+ <option
+ name="Other options (-Xlinker [option])"
+ category="solaris.gnu.linker.category.options"
+ command="-Xlinker"
+ valueType="stringList"
+ id="solaris.gnu.linker.options.other">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.link"
+ name="%OptionCategory.Libs"
+ id="solaris.gnu.linker.category.libs">
+ </optionCategory>
+ <option
+ name="Libraries"
+ category="solaris.gnu.linker.category.libs"
+ command="-l"
+ valueType="libs"
+ id="solaris.gnu.linker.libs.libs">
+ </option>
+ <option
+ name="Library search path"
+ category="solaris.gnu.linker.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="solaris.gnu.linker.libs.paths">
+ </option>
+ </tool>
</target>
<target
- isTest="true"
+ isTest="false"
name="Solaris Shared Library"
- parent="solaris"
- defaultExtension=".so"
+ parent="solaris.gnu"
+ defaultExtension="so"
isAbstract="false"
- id="solaris.so">
+ id="solaris.gnu.so">
+ <configuration
+ name="%ConfigName.Rel"
+ id="solaris.gnu.so.release">
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="solaris.gnu.so.debug">
+ </configuration>
<tool
- name="Linker"
+ sources="o"
+ name="%ToolName.linker"
outputFlag="-o"
- id="solaris.solink">
+ outputs="so"
+ outputPrefix="lib"
+ command="g++ -shared"
+ id="cdt.build.tool.solaris.gnu.solink">
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.solink"
+ name="%OptionCategory.General"
+ id="solaris.gnu.solink.category.options">
+ </optionCategory>
+ <option
+ defaultValue="false"
+ name="Do not use standard start files (-nostartfiles)"
+ category="solaris.gnu.solink.category.options"
+ command="-nostartfiles"
+ valueType="boolean"
+ id="solaris.gnu.solink.options.nostart">
+ </option>
+ <option
+ defaultValue="false"
+ name="Do not use default libraries (-nodefaultlibs)"
+ category="solaris.gnu.solink.category.options"
+ command="-nodefaultlibs"
+ valueType="boolean"
+ id="solaris.gnu.solink.options.nodeflibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="No startup or default libs (-nostdlib)"
+ category="solaris.gnu.solink.category.options"
+ command="-nostdlib"
+ valueType="boolean"
+ id="solaris.gnu.solink.options.nostdlibs">
+ </option>
+ <option
+ defaultValue="false"
+ name="Remove symbol table (-s)"
+ category="solaris.gnu.solink.category.options"
+ command="-s"
+ valueType="boolean"
+ id="solaris.gnu.solink.options.strip">
+ </option>
+ <option
+ defaultValue="false"
+ name="No shared libraries (-static)"
+ category="solaris.gnu.solink.category.options"
+ command="-static"
+ valueType="boolean"
+ id="solaris.gnu.solink.options.noshared">
+ </option>
+ <option
+ defaultValue="false"
+ name="Bind global symbol references (-symbolic)"
+ category="solaris.gnu.solink.category.options"
+ command="-symbolic"
+ valueType="boolean"
+ id="solaris.gnu.solink.options.symbolic">
+ </option>
+ <option
+ name="Other options (-Xlinker [option])"
+ category="solaris.gnu.solink.category.options"
+ command="-Xlinker"
+ valueType="stringList"
+ id="solaris.gnu.solink.options.other">
+ </option>
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.solink"
+ name="%OptionCategory.Libs"
+ id="solaris.gnu.solink.category.libs">
+ </optionCategory>
+ <option
+ name="Libraries"
+ category="solaris.gnu.solink.category.libs"
+ command="-l"
+ valueType="libs"
+ id="solaris.gnu.solink.libs.libs">
+ </option>
+ <option
+ name="Library search path"
+ category="solaris.gnu.solink.category.libs"
+ command="-L"
+ valueType="stringList"
+ id="solaris.gnu.solink.libs.paths">
+ </option>
</tool>
</target>
<target
- isTest="true"
+ isTest="false"
name="Solaris Static Library"
- parent="solaris"
- defaultExtension=".a"
+ parent="solaris.gnu"
+ defaultExtension="a"
isAbstract="false"
- id="solaris.lib">
+ id="solaris.gnu.lib">
+ <configuration
+ name="%ConfigName.Rel"
+ id="solaris.gnu.lib.release">
+ </configuration>
+ <configuration
+ name="%ConfigName.Dbg"
+ id="solaris.gnu.lib.debug">
+ </configuration>
<tool
- name="Archiver"
- id="solaris.ar">
+ sources="o"
+ name="%ToolName.archiver"
+ outputs="a"
+ outputPrefix="lib"
+ command="ar"
+ id="cdt.build.tool.solaris.gnu.lib">
+ <optionCategory
+ owner="cdt.build.tool.solaris.gnu.lib"
+ name="%OptionCategory.General"
+ id="solaris.gnu.lib.category.general">
+ </optionCategory>
+ <option
+ defaultValue="-r"
+ name="Archiver Flags"
+ category="solaris.gnu.lib.category.general"
+ valueType="string"
+ id="solaris.gnu.lib.flags">
+ </option>
</tool>
</target>
</extension>
Index: build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java,v
retrieving revision 1.2
diff -u -r1.2 ManagedProjectWizard.java
--- build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java 13 Aug 2003 17:45:38 -0000 1.2
+++ build/org/eclipse/cdt/ui/build/wizards/ManagedProjectWizard.java 14 Aug 2003 19:39:24 -0000
@@ -94,7 +94,9 @@
ITarget newTarget = ManagedBuildManager.createTarget(project, parent);
if (newTarget != null) {
// TODO add name entry field to project
- newTarget.setBuildArtifact(project.getName() + "." + parent.getDefaultExtension());
+ String artifactName = project.getName();
+ artifactName += parent.getDefaultExtension().length() == 0 ? "" : "." + parent.getDefaultExtension();
+ newTarget.setBuildArtifact(artifactName);
IConfiguration [] selectedConfigs = targetConfigurationPage.getSelectedConfigurations();
for (int i = 0; i < selectedConfigs.length; i++) {
IConfiguration config = selectedConfigs[i];
------------------------------------------------------------------------
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.124
diff -u -r1.124 ChangeLog
--- ChangeLog 13 Aug 2003 17:45:30 -0000 1.124
+++ ChangeLog 14 Aug 2003 19:19:17 -0000
@@ -1,4 +1,19 @@
2003-08-13 Sean Evoy
+ Changed text generated into makefile comments from the rather abstract
+ term 'module' to the more meaningful 'subdirectory'.
+ * src/org/eclipse/cdt/internal/core/CCorePluginResources.properties
+
+ Added place-holder macro for LIBS and changed the source file look-up code to
+ ignore source it finds in generated directories during a build, even if it has a tool
+ that says it builds for it.
+ * src/org/eclipse/cdt/internal/core/MakefileGenerator.java
+
+ Changed class to deal with build targets that do not specify an extension
+ (like POSIX executables).
+ * build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java
+ * build/org/eclipse/cdt/internal/core/build/managed/Tool.java
+
+2003-08-13 Sean Evoy
The major change in the increment of work is the new discovery mechanism
that clients will use to find the IScannerInfoProvider for a project.
Rather than a simple extension point which requires the client to iterate
Index: build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java,v
retrieving revision 1.4
diff -u -r1.4 ManagedBuildInfo.java
--- build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java 29 Jul 2003 14:28:36 -0000 1.4
+++ build/org/eclipse/cdt/internal/core/build/managed/ManagedBuildInfo.java 14 Aug 2003 19:19:17 -0000
@@ -186,12 +186,15 @@
* @see org.eclipse.cdt.core.build.managed.IResourceBuildInfo#getToolFlags(java.lang.String)
*/
public String getFlagsForTarget(String extension) {
+ // Treat null extensions as an empty string
+ String ext = extension == null ? new String() : extension;
+
// 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.producesFileType(extension)) {
+ if (tool.producesFileType(ext)) {
String flags = new String();
try {
flags = tool.getToolFlags();
@@ -306,13 +309,16 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputFlag()
*/
public String getOutputFlag(String outputExt) {
+ // Treat null extension as an empty string
+ String ext = outputExt == null ? new String() : outputExt;
+
// Get all the tools for the current config
String flags = new String();
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
- if (tool.producesFileType(outputExt)) {
+ if (tool.producesFileType(ext)) {
flags = tool.getOutputFlag();
}
}
@@ -323,13 +329,16 @@
* @see org.eclipse.cdt.core.build.managed.IManagedBuildInfo#getOutputPrefix(java.lang.String)
*/
public String getOutputPrefix(String outputExtension) {
+ // Treat null extensions as empty string
+ String ext = outputExtension == null ? new String() : outputExtension;
+
// Get all the tools for the current config
String flags = new String();
IConfiguration config = getDefaultConfiguration(getDefaultTarget());
ITool[] tools = config.getTools();
for (int index = 0; index < tools.length; index++) {
ITool tool = tools[index];
- if (tool.producesFileType(outputExtension)) {
+ if (tool.producesFileType(ext)) {
flags = tool.getOutputPrefix();
}
}
@@ -373,12 +382,14 @@
* @see org.eclipse.cdt.core.build.managed.IResourceBuildInfo#getToolInvocation(java.lang.String)
*/
public String getToolForTarget(String extension) {
+ // Treat a null argument as an empty string
+ String ext = extension == null ? new String() : extension;
// 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.producesFileType(extension)) {
+ if (tool.producesFileType(ext)) {
return tool.getToolCommand();
}
}
Index: build/org/eclipse/cdt/internal/core/build/managed/Tool.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java,v
retrieving revision 1.9
diff -u -r1.9 Tool.java
--- build/org/eclipse/cdt/internal/core/build/managed/Tool.java 31 Jul 2003 13:20:37 -0000 1.9
+++ build/org/eclipse/cdt/internal/core/build/managed/Tool.java 14 Aug 2003 19:19:17 -0000
@@ -127,6 +127,9 @@
* @see org.eclipse.cdt.core.build.managed.ITool#handlesFileType(java.lang.String)
*/
public boolean buildsFileType(String extension) {
+ if (extension == null) {
+ return false;
+ }
return getInputExtensions().contains(extension);
}
@@ -350,7 +353,7 @@
* @see org.eclipse.cdt.core.build.managed.ITool#producesFileType(java.lang.String)
*/
public boolean producesFileType(String outputExtension) {
- return outputExtension.equals(this.outputExtension);
+ return this.outputExtension.equals(outputExtension);
}
}
Index: src/org/eclipse/cdt/internal/core/CCorePluginResources.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCorePluginResources.properties,v
retrieving revision 1.3
diff -u -r1.3 CCorePluginResources.properties
--- src/org/eclipse/cdt/internal/core/CCorePluginResources.properties 25 Jul 2003 14:40:04 -0000 1.3
+++ src/org/eclipse/cdt/internal/core/CCorePluginResources.properties 14 Aug 2003 19:19:18 -0000
@@ -13,9 +13,9 @@
MakeBuilder.message.make = Calling {0} for project {1}
MakeBuilder.message.error = Build error
MakeBuilder.message.finished = Build complete for project {0}
-MakeBuilder.comment.module.list = # Every module must be described here
-MakeBuilder.comment.source.list = # Each module must contribute its source files here
-MakeBuilder.comment.build.rule = # Each module must supply rules for building sources it contributes
-MakeBuilder.comment.module.make.includes = # Include the makefiles for each source module
+MakeBuilder.comment.module.list = # Every subdirectory with source files must be described here
+MakeBuilder.comment.source.list = # Each subdirectory must contribute its source files here
+MakeBuilder.comment.build.rule = # Each subdirectory must supply rules for building sources it contributes
+MakeBuilder.comment.module.make.includes = # Include the makefiles for each source subdirectory
MakeBuilder.comment.module.dep.includes = # Include automatically-generated dependency list:
MakeBuilder.comment.autodeps = # Automatically-generated dependency list:
Index: src/org/eclipse/cdt/internal/core/MakefileGenerator.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/MakefileGenerator.java,v
retrieving revision 1.3
diff -u -r1.3 MakefileGenerator.java
--- src/org/eclipse/cdt/internal/core/MakefileGenerator.java 29 Jul 2003 14:28:36 -0000 1.3
+++ src/org/eclipse/cdt/internal/core/MakefileGenerator.java 14 Aug 2003 19:19:18 -0000
@@ -196,12 +196,14 @@
// Get the clean command from the build model
buffer.append("RM := ");
- buffer.append(info.getCleanCommand() + NEWLINE);
+ buffer.append(info.getCleanCommand() + NEWLINE + NEWLINE);
buffer.append(CCorePlugin.getResourceString(SRC_LISTS) + NEWLINE);
buffer.append("C_SRCS := " + NEWLINE);
- buffer.append("CC_SRCS := " + NEWLINE);
+ buffer.append("CC_SRCS := " + NEWLINE + NEWLINE);
+ // Add the libraries this project dependes on
+ buffer.append("LIBS := ");
buffer.append(NEWLINE + NEWLINE);
return buffer;
}
@@ -401,6 +403,14 @@
public void appendModule(IResource resource) {
// The build model knows how to build this file
IContainer container = resource.getParent();
+
+ // But is this a generated directory ...
+ IPath root = new Path(info.getConfigurationName());
+ IPath path = container.getProjectRelativePath();
+ if (root.isPrefixOf(path)) {
+ return;
+ }
+
if (!getModuleList().contains(container)) {
getModuleList().add(container);
}