1. For a String option, if the defaultValue attribute is present, and contains a string of length > 0, then the command string (if any) is prepended to the defaultValue string to form the command line string.
2. Add a commandFalse attribute to the Option Schema to be used, if specified, when the value of a Boolean option is False.
Allows the managed build system to resolve "forward references" within its extensions. In practice this is necessary to allow references between extensions in different plugins.
Partial fix for bugzilla 54202:
No longer use the cdtbuild file for persisting the default target and configuration settings for a project. This is assumed to be an individual workspace level setting so the choices are persisted in the project's persistent settings store.
The managed make builder generates the output directories, and the makefiles for those directories. Those files should be tagged as "derived" so that the CM system will ignore the files on check-in. Now, that is done when a new build directory or file is added to the project. The workspace will take care of files created by the build process through the Ignored Resources extension point.
Undid the changes to the geenrated makefile builder since bug 53253 has been corrected.
Fix for bug 53861: "Cannot reset tool command back to default". Changed the way the configuration sets the tool command when the value is the same as the default.
In the property page, there is now logic for remembering what tool has been selected as well as what option. The property page now creates preference pages for tools and options.
Updated the settings store to add tools as well as options.
Tweaked the logic of the tool/option list provider for the property page slightly to handle the case where the selection is a tool and not simply an option.
on feature C14 lead to the discoveryof a cut-&-paste error in the plugin
manifest. The miscellaneous category in the cygwin C++ compiler spec
referred to the C++ compiler in Linux as the parent. Fixed this.
reference.
Changed the schema to allow a tool reference to belong to a target.
* schema/ManagedBuildTools.exsd
Changed the manifest logic in the managed build manager to load and
retrieve tool definitions as well as target definitions. The schema
allowed for this, but the logic was missing.
* src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
Made some bookeeping additions to the target so that it can store references
to tools. First, the target loads any tool references it has. Then it loads
tools and configurations. The target also has to consider the presence of tool
references when it determines how many tools it has, so the logic that counted
and returned the number of tools in the target was updated. Some key changes in
this regard relate to how the target looks up the tool references it has. It
now has to ask the managed build info if it has a tool definition for the reference
if there are no tools defined for the target level for a given reference.
* src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
Tool references now have the potential to be owned by either a target or a
configuration. Changed the owner to the superclass of both and figure out
which the parent is at runtime to perform the proper registration and information
look-up. Also removed the reference to a target from a tool and the interface to
extract the target from ITool.
* 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
An unrelated bug had to do with a problem my testing uncovered with nested
categories. The manifest reader was looking at the wrong field to determine
the parent, but for the manifests we have created, this has not proven to be
a problem so far.
* src/org/eclipse/cdt/managedbuilder/core/IOptionCategory.java
* src/org/eclipse/cdt/managedbuilder/core/IOptionCategory.java
Changed the makefile generator to escape any whitespace it finds in a dependency path. Now it is possible to build a project in a location with spaces but you still cannot have internal folders with spaces in the name.
* src/org/eclipse/cdt/managedbuilder/internal/core/MakefileGenerator.java
Tweaked the builder to put only the make command in invocation if there were no arguments spec'd. It seemed to be causing a fake error message to be reported on Linux even though make was successfully building the project.
* src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java