diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2008-12-04 11:26:34 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2008-12-04 11:26:34 +0000 |
commit | f4f1f44b2f87f584109ab75d8d24f085e2c16f61 (patch) | |
tree | 63f7d6354fb8d16216ffaacc312836e831d9ad9b /org.rtems.cdt.toolchain2 | |
parent | Reverted previous change. You must translate the path manually for Cygwin. (diff) | |
download | rtems-eclipse-plug-in-f4f1f44b2f87f584109ab75d8d24f085e2c16f61.tar.bz2 |
Added preferences for Cygwin, MinGW and MSYS paths on windows.
Diffstat (limited to 'org.rtems.cdt.toolchain2')
14 files changed, 307 insertions, 60 deletions
diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java index 08ccd04..829a5b2 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java @@ -12,20 +12,44 @@ package org.rtems.cdt; +import java.util.Map; + public class Constants { - public static final String PATH_SEPERATOR = System.getProperty( "path.separator"); + public static final String PATH_SEPARATOR = System.getProperty( "path.separator"); + + public static final String PATH_VARIABLE_NAME = getPathVariableName(); + + public static final String PLATFORM_DEFAULT = "default"; + + public static final String PLATFORM_CYGWIN = "cygwin"; public static final String BSP_PATH_MAKE_VARIABLE = "PROJECT_RELEASE"; public static final String DEFAULT_BASE_PATH = "/opt/rtems-4.9"; public static final String DEFAULT_BSP_PATH = "/opt/rtems-4.9/powerpc-rtems4.9/psim"; + + public static final String DEFAULT_CYGWIN_PATH = "C:\\"; + + public static final String DEFAULT_MINGW_PATH = "C:\\"; + + public static final String DEFAULT_MSYS_PATH = "C:\\"; public static final String KEY_PREFIX = "org.rtems.cdt"; + public static final String PLATFORM_KEY = KEY_PREFIX + ".platform"; + public static final String BASE_PATH_KEY = KEY_PREFIX + ".basePath"; public static final String BSP_PATH_KEY = KEY_PREFIX + ".bspPath"; + + public static final String CYGWIN_PATH_KEY = KEY_PREFIX + ".cygwinPath"; + + public static final String MINGW_PATH_KEY = KEY_PREFIX + ".mingwPath"; + + public static final String MSYS_PATH_KEY = KEY_PREFIX + ".msysPath"; + + public static final String PATH_PREPEND_KEY = KEY_PREFIX + ".pathPrepend"; public static final String TOOL_KEY_PREFIX = KEY_PREFIX + ".tool"; @@ -59,6 +83,17 @@ public class Constants { public static final String TOOL_OPTIONS_LINKER_CPP_KEY = TOOL_LINKER_CPP_KEY + TOOL_OPTIONS_KEY_POSTFIX; + private static String getPathVariableName() { + Map<String, String> env = System.getenv(); + for (String name : env.keySet()) { + if (name.equalsIgnoreCase( "PATH")) { + return name; + } + } + + return "PATH"; + } + private Constants() { // Do nothing } diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java index 5a4ae30..a1c2190 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java @@ -13,11 +13,13 @@ package org.rtems.cdt; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.List; +import java.util.Map; import org.eclipse.cdt.build.core.scannerconfig.CfgInfoContext; import org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager; @@ -28,6 +30,8 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.QualifiedName; @@ -65,9 +69,9 @@ public class Storage { if (value == null) { if (key.startsWith( Constants.TOOL_KEY_PREFIX)) { - updateTools( project); + changePlatform( project, Constants.PLATFORM_DEFAULT); } else { - value = Activator.getDefault().getPreferenceStore().getString( key); + value = getPreference( key); setProperty( project, key, value); } } @@ -104,26 +108,130 @@ public class Storage { return cfg; } - public static void updateTools( IProject project) { - String path = getProperty( project, Constants.BSP_PATH_KEY); + public static String prependToPath( String path, String part) { + if (path == null || path.isEmpty()) { + return part; + } else { + return part + Constants.PATH_SEPARATOR + path; + } + } + + public static String prependToPathByPreference( String path, String key) { + String basePath = getPreference( key); + + if (basePath != null) { + IPath part = new Path( basePath).append( "bin"); + + return prependToPath( path, part.toOSString()); + } + + return path; + } + + public static String prependToPathByProperty( IProject project, String path, String key) { + String basePath = getProperty( project, key); + + if (basePath != null) { + IPath part = new Path( basePath).append( "bin"); + + return prependToPath( path, part.toOSString()); + } + + return path; + } + + public static void clearPlatform( IProject project) { + setProperty( project, Constants.PLATFORM_KEY, null); + + // Delete discovered paths for all configurations of the project + for (IConfiguration cfg : getConfigurations( project)) { + CfgDiscoveredPathManager.getInstance().removeDiscoveredInfo( + project, + new CfgInfoContext( cfg) + ); + } + } + + public static String getPlatform( IProject project) { + return getPristineProperty( project, Constants.PLATFORM_KEY); + } + + public static void changePlatform( IProject project, String newPlatform) { + String platform = getPlatform( project); + + // Check if we have already the requested platform + if (platform != null && platform == newPlatform) { + // Nothing to do + return; + } + + // Set new platform + setProperty( project, Constants.PLATFORM_KEY, newPlatform); + + // Update path prepends + String path = null; + if (Platform.getOS().equals( Platform.OS_WIN32)) { + if (newPlatform.equals( Constants.PLATFORM_CYGWIN)) { + path = prependToPathByPreference( path, Constants.CYGWIN_PATH_KEY); + } else { + path = prependToPathByPreference( path, Constants.MINGW_PATH_KEY); + path = prependToPathByPreference( path, Constants.MSYS_PATH_KEY); + } + } + path = prependToPathByProperty( project, path, Constants.BASE_PATH_KEY); + setProperty( project, Constants.PATH_PREPEND_KEY, path); + + // Update tools + updateTools( project, newPlatform); + } + + private static void updateTools( IProject project, String platform) { + String bspPath = getProperty( project, Constants.BSP_PATH_KEY); + IPath make = new Path( "make"); // Translate path if necessary if (Platform.getOS().equals( Platform.OS_WIN32)) { - // FIXME: MinGW? - - String device = path.split( ":") [0]; - path = path.replaceFirst( "^" + device + ":", "/cygdrive/" + device).replaceAll( "\\\\", "/"); + if (platform.equals( Constants.PLATFORM_CYGWIN)) { + String s [] = bspPath.split( ":"); + if (s.length > 0) { + bspPath = bspPath.replaceFirst( "^" + s [0] + ":", "/cygdrive/" + s [0]); + } + } + bspPath = bspPath.replaceAll( "\\\\", "/"); } // Create make process builder - ProcessBuilder pb = new ProcessBuilder( - "make", - Constants.BSP_PATH_MAKE_VARIABLE + "=" + path - ); + ProcessBuilder pb = new ProcessBuilder(); // Change working directory to the Makefile location pb.directory( Activator.getDefault().getMakefileLocation().toFile()); + // Update path environment variable + Map<String, String> env = pb.environment(); + String path = env.get( Constants.PATH_VARIABLE_NAME); + String part = getProperty( project, Constants.PATH_PREPEND_KEY); + path = Storage.prependToPath( path, part); + env.put( Constants.PATH_VARIABLE_NAME, path); + + // On windows we have to search for the make program in the new path environment + if (Platform.getOS().equals( Platform.OS_WIN32)) { + String parts [] = path.split( Constants.PATH_SEPARATOR); + for (String p : parts) { + IPath makeCandidate = new Path( p).append( "make.exe"); + File file = new File( makeCandidate.toOSString()); + if (file.exists()) { + make = makeCandidate; + break; + } + } + } + + // Set command line + pb.command( + make.toOSString(), + Constants.BSP_PATH_MAKE_VARIABLE + "=" + bspPath + ); + // Start make process and parse its output Process p = null; try { @@ -186,14 +294,6 @@ public class Storage { } } } - - // Delete discovered paths for all configurations of the project - for (IConfiguration cfg : getConfigurations( project)) { - CfgDiscoveredPathManager.getInstance().removeDiscoveredInfo( - project, - new CfgInfoContext( cfg) - ); - } } private static void updateTool( IProject project, String toolKey, String command, List<String> options) { diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java index 6276708..9fa7bdd 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java @@ -21,6 +21,10 @@ import org.rtems.cdt.Constants; import org.rtems.cdt.Storage; public class CommandLineGenerator extends ManagedCommandLineGenerator implements IManagedCommandLineGenerator { + protected String getPlatform() { + return Constants.PLATFORM_DEFAULT; + } + public IManagedCommandLineInfo generateCommandLineInfo( ITool tool, String commandName, @@ -33,6 +37,9 @@ public class CommandLineGenerator extends ManagedCommandLineGenerator implements ) { // Get associated project of the tool IProject project = (IProject) tool.getParentResourceInfo().getParent().getOwner(); + + // Change platform + Storage.changePlatform( project, getPlatform()); // Determine tool key via the tool ID String id = tool.getId(); diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinCommandLineGenerator.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinCommandLineGenerator.java new file mode 100644 index 0000000..b7012e6 --- /dev/null +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinCommandLineGenerator.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2008 + * Embedded Brains GmbH + * Obere Lagerstr. 30 + * D-82178 Puchheim + * Germany + * rtems@embedded-brains.de + * + * The license and distribution terms for this file may be found in the file + * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + */ + +package org.rtems.cdt.build; + +import org.rtems.cdt.Constants; + +public class CygwinCommandLineGenerator extends CommandLineGenerator { + protected String getPlatform() { + return Constants.PLATFORM_CYGWIN; + } +} diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinEnvironmentSupplier.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinEnvironmentSupplier.java new file mode 100644 index 0000000..cb0ecac --- /dev/null +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinEnvironmentSupplier.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2008 + * Embedded Brains GmbH + * Obere Lagerstr. 30 + * D-82178 Puchheim + * Germany + * rtems@embedded-brains.de + * + * The license and distribution terms for this file may be found in the file + * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + */ + +package org.rtems.cdt.build; + +import org.rtems.cdt.Constants; + +public class CygwinEnvironmentSupplier extends EnvironmentSupplier { + protected String getPlatform() { + return Constants.PLATFORM_CYGWIN; + } +}
\ No newline at end of file diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinRunScannerInfoProvider.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinRunScannerInfoProvider.java new file mode 100644 index 0000000..75027c3 --- /dev/null +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinRunScannerInfoProvider.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2008 + * Embedded Brains GmbH + * Obere Lagerstr. 30 + * D-82178 Puchheim + * Germany + * rtems@embedded-brains.de + * + * The license and distribution terms for this file may be found in the file + * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + */ + +package org.rtems.cdt.build; + +import org.rtems.cdt.Constants; + +public class CygwinRunScannerInfoProvider extends RunScannerInfoProvider { + protected String getPlatform() { + return Constants.PLATFORM_CYGWIN; + } +} diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/WinScannerInfoCollector.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinScannerInfoCollector.java index 6667ade..56e627d 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/WinScannerInfoCollector.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CygwinScannerInfoCollector.java @@ -29,7 +29,7 @@ import org.eclipse.core.resources.IProject; * * See also 'org.eclipse.cdt.managedbuilder.internal.scannerconfig.DefaultGnuWinScannerInfoCollector'. */ -public class WinScannerInfoCollector extends PerProjectSICollector implements IScannerInfoCollector3, IManagedScannerInfoCollector { +public class CygwinScannerInfoCollector extends PerProjectSICollector implements IScannerInfoCollector3, IManagedScannerInfoCollector { private IProject mProject; public void contributeToScannerConfig( Object resource, Map scannerInfo) { @@ -46,7 +46,7 @@ public class WinScannerInfoCollector extends PerProjectSICollector implements IS scannerInfo.put( ScannerInfoTypes.INCLUDE_PATHS, translatedIncludes); super.contributeToScannerConfig( resource, scannerInfo); - } +} public void setProject( IProject project) { mProject = project; diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java index 2099038..acde119 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/EnvironmentSupplier.java @@ -13,38 +13,43 @@ package org.rtems.cdt.build; import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.cdt.managedbuilder.core.IManagedProject; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; +import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier; import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; -import org.eclipse.cdt.managedbuilder.envvar.IProjectEnvironmentVariableSupplier; import org.eclipse.cdt.managedbuilder.internal.envvar.BuildEnvVar; import org.rtems.cdt.Constants; import org.rtems.cdt.Storage; -public class EnvironmentSupplier implements IProjectEnvironmentVariableSupplier { +public class EnvironmentSupplier implements IConfigurationEnvironmentVariableSupplier { private static final int PATH_INDEX = 0; private static final int VARIABLE_COUNT = 1; + + protected String getPlatform() { + return Constants.PLATFORM_DEFAULT; + } - public IBuildEnvironmentVariable getVariable( String name, IManagedProject project, IEnvironmentVariableProvider provider) { + public IBuildEnvironmentVariable getVariable( String name, IConfiguration configuration, IEnvironmentVariableProvider provider) { if (name.equals( "PATH")) { - IPath path = new Path( - Storage.getProperty( (IProject) project.getOwner(), Constants.BASE_PATH_KEY) - ); - path = path.append( "bin"); + IProject project = (IProject) configuration.getOwner(); + + // Change platform + Storage.changePlatform( project, getPlatform()); + + // Get path parts + String part = Storage.getProperty( project, Constants.PATH_PREPEND_KEY); - return new BuildEnvVar( name, path.toOSString(), IBuildEnvironmentVariable.ENVVAR_PREPEND, Constants.PATH_SEPERATOR); + return new BuildEnvVar( name, part, IBuildEnvironmentVariable.ENVVAR_PREPEND, Constants.PATH_SEPARATOR); } return null; } - public IBuildEnvironmentVariable [] getVariables( IManagedProject project, IEnvironmentVariableProvider provider) { + public IBuildEnvironmentVariable [] getVariables( IConfiguration configuration, IEnvironmentVariableProvider provider) { IBuildEnvironmentVariable variables [] = new IBuildEnvironmentVariable [VARIABLE_COUNT]; - variables [PATH_INDEX] = getVariable( "PATH", project, provider); + variables [PATH_INDEX] = getVariable( "PATH", configuration, provider); return variables; } 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 2616602..1e11df3 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/RunScannerInfoProvider.java @@ -19,7 +19,11 @@ import org.eclipse.core.runtime.Path; import org.rtems.cdt.Constants; import org.rtems.cdt.Storage; -public class RunScannerInfoProvider extends GCCSpecsRunSIProvider { +public class RunScannerInfoProvider extends GCCSpecsRunSIProvider { + protected String getPlatform() { + return Constants.PLATFORM_DEFAULT; + } + protected boolean initialize() { if (!super.initialize()) { return false; @@ -42,6 +46,9 @@ public class RunScannerInfoProvider extends GCCSpecsRunSIProvider { return false; } + // Change platform + Storage.changePlatform( project, getPlatform()); + /* * FIXME: Added absolute path since it seams that the build * environment is ignored. diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferenceInitializer.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferenceInitializer.java index 19d9232..c15343b 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferenceInitializer.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferenceInitializer.java @@ -12,6 +12,7 @@ package org.rtems.cdt.preferences; +import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.jface.preference.IPreferenceStore; import org.rtems.cdt.Activator; @@ -22,5 +23,10 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer { IPreferenceStore store = Activator.getDefault().getPreferenceStore(); store.setDefault( Constants.BASE_PATH_KEY, Constants.DEFAULT_BASE_PATH); store.setDefault( Constants.BSP_PATH_KEY, Constants.DEFAULT_BSP_PATH); + if (Platform.getOS().equals( Platform.OS_WIN32)) { + store.setDefault( Constants.CYGWIN_PATH_KEY, Constants.DEFAULT_CYGWIN_PATH); + store.setDefault( Constants.MINGW_PATH_KEY, Constants.DEFAULT_MINGW_PATH); + store.setDefault( Constants.MSYS_PATH_KEY, Constants.DEFAULT_MSYS_PATH); + } } } diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferencePage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferencePage.java index bf9890e..efe214c 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferencePage.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/preferences/PreferencePage.java @@ -12,6 +12,7 @@ package org.rtems.cdt.preferences; +import org.eclipse.core.runtime.Platform; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.ui.IWorkbenchPreferencePage; @@ -42,7 +43,30 @@ public class PreferencePage "BSP path:", getFieldEditorParent() ) - ); + ); + if (Platform.getOS().equals( Platform.OS_WIN32)) { + addField( + new DirectoryFieldEditor( + Constants.CYGWIN_PATH_KEY, + "Cygwin path:", + getFieldEditorParent() + ) + ); + addField( + new DirectoryFieldEditor( + Constants.MINGW_PATH_KEY, + "MinGW path:", + getFieldEditorParent() + ) + ); + addField( + new DirectoryFieldEditor( + Constants.MSYS_PATH_KEY, + "MSYS path:", + getFieldEditorParent() + ) + ); + } } public void init( IWorkbench workbench) { diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java index 11b5018..65365e3 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java @@ -89,8 +89,8 @@ public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenc setProperty( Constants.BASE_PATH_KEY); setProperty( Constants.BSP_PATH_KEY); - // Update tools - Storage.updateTools( mProject); + // Clear platform + Storage.clearPlatform( mProject); return true; } diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java index d891c83..6b37412 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java @@ -41,8 +41,8 @@ public class FinishSetup implements Runnable { Storage.setProperty( project, Constants.BASE_PATH_KEY, basePath); Storage.setProperty( project, Constants.BSP_PATH_KEY, bspPath); - // Update tools - Storage.updateTools( project); + // Clear platform + Storage.clearPlatform( project); } } } diff --git a/org.rtems.cdt.toolchain2/plugin.xml b/org.rtems.cdt.toolchain2/plugin.xml index 5741067..05d2b3a 100644 --- a/org.rtems.cdt.toolchain2/plugin.xml +++ b/org.rtems.cdt.toolchain2/plugin.xml @@ -72,7 +72,7 @@ name="RTEMS Scanner Configuration Discovery Profile (Windows)" point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile"> <scannerInfoCollector - class="org.rtems.cdt.build.WinScannerInfoCollector" + class="org.rtems.cdt.build.CygwinScannerInfoCollector" scope="project"/> <buildOutputProvider> <open/> @@ -81,7 +81,7 @@ <scannerInfoProvider providerId="specsFile"> <run arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" - class="org.rtems.cdt.build.RunScannerInfoProvider"/> + class="org.rtems.cdt.build.CygwinRunScannerInfoProvider"/> <scannerInfoConsoleParser class="org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCSpecsConsoleParser"/> </scannerInfoProvider> </extension> @@ -90,7 +90,7 @@ name="RTEMS Scanner Configuration Discovery Profile (Windows)" point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile"> <scannerInfoCollector - class="org.rtems.cdt.build.WinScannerInfoCollector" + class="org.rtems.cdt.build.CygwinScannerInfoCollector" scope="project"/> <buildOutputProvider> <open/> @@ -99,7 +99,7 @@ <scannerInfoProvider providerId="specsFile"> <run arguments="-E -P -v -dD ${plugin_state_location}/specs.c" - class="org.rtems.cdt.build.RunScannerInfoProvider"/> + class="org.rtems.cdt.build.CygwinRunScannerInfoProvider"/> <scannerInfoConsoleParser class="org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCSpecsConsoleParser"/> </scannerInfoProvider> </extension> @@ -108,7 +108,7 @@ name="RTEMS Scanner Configuration Discovery Profile (Windows)" point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile"> <scannerInfoCollector - class="org.rtems.cdt.build.WinScannerInfoCollector" + class="org.rtems.cdt.build.CygwinScannerInfoCollector" scope="project"/> <buildOutputProvider> <open/> @@ -117,7 +117,7 @@ <scannerInfoProvider providerId="specsFile"> <run arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" - class="org.rtems.cdt.build.RunScannerInfoProvider"/> + class="org.rtems.cdt.build.CygwinRunScannerInfoProvider"/> <scannerInfoConsoleParser class="org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCSpecsConsoleParser"/> </scannerInfoProvider> </extension> @@ -145,12 +145,13 @@ <!-- Toolchain (Standard) --> <toolChain + archList="all" + configurationEnvironmentSupplier="org.rtems.cdt.build.EnvironmentSupplier" id="org.rtems.cdt.toolchain" name="RTEMS Toolchain" - archList="all" osList="all" - targetTool="org.rtems.cdt.linker.c;org.rtems.cdt.linker.cpp;org.rtems.cdt.archiver" - scannerConfigDiscoveryProfileId="org.rtems.cdt.toolchain2.RtemsSCDProfile"> + scannerConfigDiscoveryProfileId="org.rtems.cdt.toolchain2.RtemsSCDProfile" + targetTool="org.rtems.cdt.linker.c;org.rtems.cdt.linker.cpp;org.rtems.cdt.archiver"> <targetPlatform id="org.rtems.cdt.target" name="RTEMS Target" @@ -227,7 +228,7 @@ archList="all" osList="win32" targetTool="org.rtems.cdt.linker.c.cygwin;org.rtems.cdt.linker.cpp.cygwin;org.rtems.cdt.archiver.cygwin" - configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.gnu.cygwin.GnuCygwinConfigurationEnvironmentSupplier" + configurationEnvironmentSupplier="org.rtems.cdt.build.CygwinEnvironmentSupplier" isToolChainSupported="org.eclipse.cdt.managedbuilder.gnu.cygwin.IsGnuCygwinToolChainSupported" scannerConfigDiscoveryProfileId="org.rtems.cdt.toolchain2.RtemsSCDProfileWin"> <targetPlatform @@ -243,12 +244,12 @@ <tool id="org.rtems.cdt.assembler.cygwin" superClass="cdt.managedbuild.tool.gnu.assembler" - commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> + commandLineGenerator="org.rtems.cdt.build.CygwinCommandLineGenerator"> </tool> <tool id="org.rtems.cdt.compiler.c.cygwin" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin" - commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> + commandLineGenerator="org.rtems.cdt.build.CygwinCommandLineGenerator"> <inputType id="org.rtems.cdt.compiler.input.c.cygwin" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin" @@ -257,7 +258,7 @@ <tool id="org.rtems.cdt.compiler.cpp.cygwin" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin" - commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> + commandLineGenerator="org.rtems.cdt.build.CygwinCommandLineGenerator"> <inputType id="org.rtems.cdt.compiler.cpp.input.cygwin" scannerConfigDiscoveryProfileId="org.rtems.cdt.toolchain2.RtemsSCDProfileWinCPP" @@ -266,7 +267,7 @@ <tool id="org.rtems.cdt.linker.c.cygwin" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin" - commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> + commandLineGenerator="org.rtems.cdt.build.CygwinCommandLineGenerator"> <enablement type="ALL"> <not> <checkBuildProperty @@ -278,7 +279,7 @@ <tool id="org.rtems.cdt.linker.cpp.cygwin" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin" - commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> + commandLineGenerator="org.rtems.cdt.build.CygwinCommandLineGenerator"> <enablement type="ALL"> <not> <checkBuildProperty @@ -290,7 +291,7 @@ <tool id="org.rtems.cdt.archiver.cygwin" superClass="cdt.managedbuild.tool.gnu.archiver" - commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> + commandLineGenerator="org.rtems.cdt.build.CygwinCommandLineGenerator"> <enablement type="ALL"> <checkBuildProperty property="org.eclipse.cdt.build.core.buildArtefactType" @@ -303,8 +304,7 @@ <projectType buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" id="org.rtems.cdt.projectType" - name="RTEMS Executable" - projectEnvironmentSupplier="org.rtems.cdt.build.EnvironmentSupplier"> + name="RTEMS Executable"> <configuration id="org.rtems.cdt.config" name="RTEMS Executable Configuration" |