summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2008-12-01 12:50:59 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2008-12-01 12:50:59 +0000
commit762740bdf6a7c296ff0d0e4a29f7291d75427d5e (patch)
tree345edeb01b058e9031e7d71ff804603f7d89148a
parentAdded tool options parser. (diff)
downloadrtems-eclipse-plug-in-762740bdf6a7c296ff0d0e4a29f7291d75427d5e.tar.bz2
Fixed problem with '-B' GCC option.
Filters new option values.
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java22
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java7
2 files changed, 26 insertions, 3 deletions
diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java
index 1cd3818..155e1a7 100644
--- a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java
+++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java
@@ -155,14 +155,30 @@ public class Storage {
}
private static void updateTool( IProject project, String toolKey, String command, List<String> options) {
+ List<String> filteredOptions = new LinkedList<String>();
+
+ // Filter options
+ if (toolKey.startsWith( Constants.COMPILER_KEY_PREFIX) || toolKey.startsWith( Constants.LINKER_KEY_PREFIX)) {
+ for (String option : options) {
+ if (!(option.isEmpty() || option.trim().matches( "^-c|-O[0123s]|-g|-W[\\w-]*$"))) {
+ filteredOptions.add( option);
+ }
+ }
+ } else {
+ filteredOptions = options;
+ }
+
+ // Transform filtered option list into option string value
String optionsValue = new String();
if (!options.isEmpty()) {
- optionsValue = options.get( 0);
- options.remove( 0);
+ optionsValue = filteredOptions.get( 0);
+ filteredOptions.remove( 0);
}
- for (String option : options) {
+ for (String option : filteredOptions) {
optionsValue += OPTION_SEPARATOR + option;
}
+
+ // Set properties
setProperty( project, toolKey, command);
setProperty( project, toolKey + Constants.TOOL_OPTIONS_KEY_POSTFIX, optionsValue);
}
diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java
index 099ab8b..2616602 100644
--- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java
+++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java
@@ -54,6 +54,13 @@ public class RunScannerInfoProvider extends GCCSpecsRunSIProvider {
Storage.getProperty( project, Constants.TOOL_COMPILER_C_KEY)
);
+ // Add the standard options to the command arguments
+ String options [] = Storage.getToolOptions( project, Constants.TOOL_COMPILER_C_KEY);
+ String newCompileArguments [] = new String [options.length + fCompileArguments.length];
+ System.arraycopy( options, 0, newCompileArguments, 0, options.length);
+ System.arraycopy( fCompileArguments, 0, newCompileArguments, options.length, fCompileArguments.length);
+ fCompileArguments = newCompileArguments;
+
return true;
}
}