diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2009-11-27 09:36:22 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2009-11-27 09:36:22 +0000 |
commit | 0fab0d1d2cf193b4c4dcacc2f442155bf7dc8a88 (patch) | |
tree | 7fe4bd65df93f579370d8021d836bb2f0b3d6df0 /org.rtems.cdt | |
parent | Fixed nature filter for C++ compiler. (diff) | |
download | rtems-eclipse-plug-in-0fab0d1d2cf193b4c4dcacc2f442155bf7dc8a88.tar.bz2 |
Added preference and property to disable tool options derived from BSP settings.
Diffstat (limited to 'org.rtems.cdt')
6 files changed, 38 insertions, 7 deletions
diff --git a/org.rtems.cdt/src/org/rtems/cdt/Constants.java b/org.rtems.cdt/src/org/rtems/cdt/Constants.java index a5b02ad..fec286b 100644 --- a/org.rtems.cdt/src/org/rtems/cdt/Constants.java +++ b/org.rtems.cdt/src/org/rtems/cdt/Constants.java @@ -47,6 +47,8 @@ public class Constants { public static final String DEFAULT_MSYS_PATH = "C:\\"; + public static final String DEFAULT_DISABLE_TOOL_OPTIONS = "false"; + public static final String KEY_PREFIX = "org.rtems.cdt"; public static final String PLATFORM_KEY = KEY_PREFIX + ".platform"; @@ -63,6 +65,8 @@ public class Constants { public static final String PATH_PREPEND_KEY = KEY_PREFIX + ".pathPrepend"; + public static final String DISABLE_TOOL_OPTIONS_KEY = KEY_PREFIX + ".disableToolOptions"; + public static final String TOOL_KEY_PREFIX = KEY_PREFIX + ".tool"; public static final String TOOL_ARCHIVER_KEY = TOOL_KEY_PREFIX + ".archiver"; diff --git a/org.rtems.cdt/src/org/rtems/cdt/Storage.java b/org.rtems.cdt/src/org/rtems/cdt/Storage.java index 6f55cd0..e0cc1a5 100644 --- a/org.rtems.cdt/src/org/rtems/cdt/Storage.java +++ b/org.rtems.cdt/src/org/rtems/cdt/Storage.java @@ -407,10 +407,15 @@ public class Storage { return optionsValue.split( OPTION_SEPARATOR); } + + public static boolean areToolOptionsEnabled( IProject project) { + return !getProperty( project, Constants.DISABLE_TOOL_OPTIONS_KEY).equals( "true"); + } public static void createMarker( IProject project, String id, String message) { createMarker( project, id, message, IMarker.SEVERITY_ERROR); } + public static void createMarker( IProject project, String id, String message, int severity) { try { IMarker marker = project.createMarker( IMarker.PROBLEM); diff --git a/org.rtems.cdt/src/org/rtems/cdt/build/CommandLineGenerator.java b/org.rtems.cdt/src/org/rtems/cdt/build/CommandLineGenerator.java index f4583d2..d64af68 100644 --- a/org.rtems.cdt/src/org/rtems/cdt/build/CommandLineGenerator.java +++ b/org.rtems.cdt/src/org/rtems/cdt/build/CommandLineGenerator.java @@ -38,7 +38,7 @@ public class CommandLineGenerator extends ManagedCommandLineGenerator implements public IManagedCommandLineInfo generateCommandLineInfo( ITool tool, String commandName, - String [] userOptions, + String [] options, String outputFlag, String outputPrefix, String outputName, @@ -74,11 +74,14 @@ public class CommandLineGenerator extends ManagedCommandLineGenerator implements commandName = Storage.getProperty( project, toolKey); tool.setToolCommand( commandName); - // Combine tool and user options - String [] toolOptions = Storage.getToolOptions( project, toolKey); - String options [] = new String [toolOptions.length + userOptions.length]; - System.arraycopy( toolOptions, 0, options, 0, toolOptions.length); - System.arraycopy( userOptions, 0, options, toolOptions.length, userOptions.length); + // Combine tool options and options + if (Storage.areToolOptionsEnabled( project)) { + String [] toolOptions = Storage.getToolOptions( project, toolKey); + String combinedOptions [] = new String [toolOptions.length + options.length]; + System.arraycopy( toolOptions, 0, combinedOptions, 0, toolOptions.length); + System.arraycopy( options, 0, combinedOptions, toolOptions.length, options.length); + options = combinedOptions; + } return super.generateCommandLineInfo( tool, diff --git a/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferenceInitializer.java b/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferenceInitializer.java index 9e07c35..e14f6bf 100644 --- a/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferenceInitializer.java +++ b/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferenceInitializer.java @@ -38,5 +38,6 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer { store.setDefault( Constants.MINGW_PATH_KEY, Constants.DEFAULT_MINGW_PATH); store.setDefault( Constants.MSYS_PATH_KEY, Constants.DEFAULT_MSYS_PATH); } + store.setDefault( Constants.DISABLE_TOOL_OPTIONS_KEY, Constants.DEFAULT_DISABLE_TOOL_OPTIONS); } } diff --git a/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferencePage.java b/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferencePage.java index c56379a..a82f7e4 100644 --- a/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferencePage.java +++ b/org.rtems.cdt/src/org/rtems/cdt/preferences/PreferencePage.java @@ -23,6 +23,7 @@ package org.rtems.cdt.preferences; import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.ui.IWorkbenchPreferencePage; @@ -36,7 +37,7 @@ public class PreferencePage public PreferencePage() { super( GRID); setPreferenceStore( Activator.getDefault().getPreferenceStore()); - setDescription( "Select the RTEMS base installation path and the board support package (BSP) installation path. This provides the default values for all projects."); + setDescription( "Select the RTEMS base installation path and the board support package (BSP) installation path. This provides the default values for all projects. Existing projects are not affected by changes made here."); } public void createFieldEditors() { @@ -77,6 +78,13 @@ public class PreferencePage ) ); } + addField( + new BooleanFieldEditor( + Constants.DISABLE_TOOL_OPTIONS_KEY, + "Disable tool options derived from BSP settings", + getFieldEditorParent() + ) + ); } public void init( IWorkbench workbench) { diff --git a/org.rtems.cdt/src/org/rtems/cdt/properties/PropertyPage.java b/org.rtems.cdt/src/org/rtems/cdt/properties/PropertyPage.java index 638d39e..5d6d43d 100644 --- a/org.rtems.cdt/src/org/rtems/cdt/properties/PropertyPage.java +++ b/org.rtems.cdt/src/org/rtems/cdt/properties/PropertyPage.java @@ -25,6 +25,7 @@ package org.rtems.cdt.properties; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; @@ -70,6 +71,7 @@ public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenc // Setup store values setupStoreValue( store, Constants.BASE_PATH_KEY); setupStoreValue( store, Constants.BSP_PATH_KEY); + setupStoreValue( store, Constants.DISABLE_TOOL_OPTIONS_KEY); // Add field editors addField( @@ -86,6 +88,13 @@ public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenc getFieldEditorParent() ) ); + addField( + new BooleanFieldEditor( + Constants.DISABLE_TOOL_OPTIONS_KEY, + "Disable tool options derived from BSP settings", + getFieldEditorParent() + ) + ); } private void setProperty( String key) { @@ -98,6 +107,7 @@ public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenc // Set the new properties setProperty( Constants.BASE_PATH_KEY); setProperty( Constants.BSP_PATH_KEY); + setProperty( Constants.DISABLE_TOOL_OPTIONS_KEY); // Clear platform Storage.clearPlatform( mProject); |