diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2008-11-28 11:05:27 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2008-11-28 11:05:27 +0000 |
commit | 9fef14d8fa5fd554e2817f93646234d879e338b6 (patch) | |
tree | 5fe9ecbe96728412e113ab9811e52a365abef88b /org.rtems.cdt.toolchain2 | |
parent | Added PATH environment variable to provider. (diff) | |
download | rtems-eclipse-plug-in-9fef14d8fa5fd554e2817f93646234d879e338b6.tar.bz2 |
Added command line generator.
Cleanup.
Diffstat (limited to 'org.rtems.cdt.toolchain2')
7 files changed, 82 insertions, 140 deletions
diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java index c7da65b..1be8557 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java @@ -47,18 +47,6 @@ public class Constants { public static final String BSP_PATH_KEY = "org.rtems.cdt.key.bspPath"; - public static final String VERSION_MACRO_NAME = "ORG_RTEMS_CDT_VERSION"; - - public static final String TARGET_MACRO_NAME = "ORG_RTEMS_CDT_TARGET"; - - private static int mCounter = 0; - - public static String getCounter() { - ++mCounter; - return String.valueOf( mCounter); - } - - private Constants() { // Do nothing } diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/PropertyExpander.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/PropertyExpander.java deleted file mode 100644 index 3857b5a..0000000 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/PropertyExpander.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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; - -import java.util.Map; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.cdt.build.core.scannerconfig.CfgInfoContext; -import org.eclipse.cdt.build.core.scannerconfig.ICfgScannerConfigBuilderInfo2Set; -import org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigProfileManager; -import org.eclipse.cdt.core.model.CoreModel; -import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; -import org.eclipse.cdt.core.settings.model.ICProjectDescription; -import org.eclipse.cdt.make.core.MakeCorePlugin; -import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2; -import org.eclipse.cdt.managedbuilder.core.IConfiguration; -import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; - -public class PropertyExpander { - private static final String BUILD_INFO_PROVIDER_ID = "specsFile"; - - public static void expand( IProject project) { - String basePath = Storage.getProperty( project, Constants.BASE_PATH_KEY); - String version = Storage.getProperty( project, Constants.VERSION_KEY); - String target = Storage.getProperty( project, Constants.TARGET_KEY); - String bspPath = Storage.getProperty( project, Constants.BSP_PATH_KEY); - - - ICProjectDescription pd = CoreModel.getDefault().getProjectDescription( project); - ICConfigurationDescription cd = pd.getActiveConfiguration(); - IConfiguration cfg = ManagedBuildManager.getConfigurationForDescription(cd); - - // Scanner configuration discovery. - ICfgScannerConfigBuilderInfo2Set cbi = - CfgScannerConfigProfileManager.getCfgScannerConfigBuildInfo(cfg); - Map<CfgInfoContext, IScannerConfigBuilderInfo2> infoMap = cbi.getInfoMap(); - for (CfgInfoContext infoContext : infoMap.keySet()) { - IScannerConfigBuilderInfo2 buildInfo = cbi.getInfo(infoContext); - buildInfo.setProviderRunCommand(BUILD_INFO_PROVIDER_ID, target + "-rtems" + version + "-gcc"); - try { - buildInfo.save(); - } catch (CoreException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - MakeCorePlugin.getDefault().getDiscoveryManager().removeDiscoveredInfo(project); - } - - private PropertyExpander() { - // Do nothing - } -} diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java new file mode 100644 index 0000000..4147e61 --- /dev/null +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java @@ -0,0 +1,70 @@ +/* + * 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.eclipse.cdt.managedbuilder.core.IManagedCommandLineGenerator; +import org.eclipse.cdt.managedbuilder.core.IManagedCommandLineInfo; +import org.eclipse.cdt.managedbuilder.core.ITool; +import org.eclipse.cdt.managedbuilder.internal.core.ManagedCommandLineGenerator; +import org.eclipse.core.resources.IProject; +import org.rtems.cdt.Constants; +import org.rtems.cdt.Storage; + +public class CommandLineGenerator extends ManagedCommandLineGenerator implements IManagedCommandLineGenerator { + public IManagedCommandLineInfo generateCommandLineInfo( + ITool tool, + String commandName, + String [] flags, + String outputFlag, + String outputPrefix, + String outputName, + String [] inputResources, + String commandLinePattern + ) { + // Get associated project of the tool + IProject project = (IProject) tool.getParentResourceInfo().getParent().getOwner(); + + // Determine main command name via the tool ID + String id = tool.getId(); + String name = "-gcc"; + if (id.contains( "archiver")) { + name = "-ar"; + } else if (id.contains( "assembler")) { + name = "-as"; + } else if (id.contains( "cpp.compiler")) { + name = "-g++"; + } else if (id.contains( "cpp.linker")) { + name = "-g++"; + } + + // Create and set command name + commandName = new String( + Storage.getProperty( project, Constants.TARGET_KEY) + + "-rtems" + + Storage.getProperty( project, Constants.VERSION_KEY) + + name + ); + tool.setToolCommand( commandName); + + return super.generateCommandLineInfo( + tool, + commandName, + flags, + outputFlag, + outputPrefix, + outputName, + inputResources, + commandLinePattern + ); + } +} diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/MacroSupplier.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/MacroSupplier.java index c07cb07..819c4ab 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/build/MacroSupplier.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/build/MacroSupplier.java @@ -12,52 +12,23 @@ package org.rtems.cdt.build; -import org.eclipse.core.resources.IProject; import org.eclipse.cdt.managedbuilder.core.IManagedProject; -import org.eclipse.cdt.managedbuilder.internal.macros.BuildMacro; import org.eclipse.cdt.managedbuilder.macros.IBuildMacro; import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider; import org.eclipse.cdt.managedbuilder.macros.IProjectBuildMacroSupplier; -import org.rtems.cdt.Constants; -import org.rtems.cdt.Storage; public class MacroSupplier implements IProjectBuildMacroSupplier { - private static final int VERSION_INDEX = 0; - - private static final int TARGET_INDEX = 1; - - private static final int MACRO_COUNT = 2; - public MacroSupplier() { // Do nothing } public IBuildMacro getMacro( String macroName, IManagedProject project, IBuildMacroProvider provider) { - String value = null; - - if (macroName.equals( Constants.VERSION_MACRO_NAME)) { - value = Storage.getProperty( (IProject) project.getOwner(), Constants.VERSION_KEY); - } else if (macroName.equals( Constants.TARGET_MACRO_NAME)) { - value = Storage.getProperty( (IProject) project.getOwner(), Constants.TARGET_KEY); - } - - if (value != null) { - // System.out.println( Constants.getCounter() + ": getMacro: " + macroName + ": " + value); - return new BuildMacro( macroName, IBuildMacro.VALUE_TEXT, value); - } else { - return null; - } + // TODO + return null; } public IBuildMacro [] getMacros( IManagedProject project, IBuildMacroProvider provider) { - IBuildMacro macros [] = new IBuildMacro [MACRO_COUNT]; - - // System.out.println( Constants.getCounter() + ": getMacros"); - - macros [VERSION_INDEX] = getMacro( Constants.VERSION_MACRO_NAME, project, provider); - - macros [TARGET_INDEX] = getMacro( Constants.TARGET_MACRO_NAME, project, provider); - - return macros; + // TODO + return null; } } diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/BasicSetup.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/BasicSetup.java index 24928fe..01abd88 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/BasicSetup.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/BasicSetup.java @@ -13,8 +13,6 @@ package org.rtems.cdt.wizards; import java.util.*; -import org.eclipse.core.resources.*; -import org.eclipse.cdt.ui.wizards.*; import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPage; import org.eclipse.cdt.managedbuilder.ui.wizards.MBSCustomPageManager; import org.eclipse.jface.resource.ImageDescriptor; @@ -169,7 +167,7 @@ public class BasicSetup extends MBSCustomPage { } public String getDescription() { - return "Select your desired RTEMS installation path, version and target architecture."; + return "WARNING: This page is not useful."; } public String getErrorMessage() { 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 1a88300..e0d2407 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java @@ -12,30 +12,8 @@ package org.rtems.cdt.wizards; - -import org.eclipse.cdt.managedbuilder.ui.wizards.*; -import org.eclipse.cdt.ui.wizards.CDTCommonProjectWizard; -import org.eclipse.core.resources.IProject; -import org.eclipse.jface.wizard.IWizardPage; -import org.rtems.cdt.PropertyExpander; -import org.rtems.cdt.Storage; - public class FinishSetup implements Runnable { public void run() { - String installationPath = (String) MBSCustomPageManager.getPageProperty( BasicSetup.PAGE_ID, "installationPath"); - String version = (String) MBSCustomPageManager.getPageProperty( BasicSetup.PAGE_ID, "version"); - String target = (String) MBSCustomPageManager.getPageProperty( BasicSetup.PAGE_ID, "target"); - - // Get a handle to the wizard - IWizardPage [] pages = MBSCustomPageManager.getPages(); - - if (pages != null && pages.length > 0) { - CDTCommonProjectWizard wizard = (CDTCommonProjectWizard) pages [0].getWizard(); - IProject project = wizard.getLastProject(); - //PropertyExpander.expand( project); - } - System.out.println( installationPath); - System.out.println( version); - System.out.println( target); + // TODO } } diff --git a/org.rtems.cdt.toolchain2/plugin.xml b/org.rtems.cdt.toolchain2/plugin.xml index 87c41b0..37cb39f 100644 --- a/org.rtems.cdt.toolchain2/plugin.xml +++ b/org.rtems.cdt.toolchain2/plugin.xml @@ -160,7 +160,7 @@ <tool id="org.rtems.cdt.c.compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler" - command="${ORG_RTEMS_CDT_TARGET}-rtems${ORG_RTEMS_CDT_VERSION}-gcc"> + commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> <inputType id="org.rtems.cdt.c.compiler.input" superClass="cdt.managedbuild.tool.gnu.c.compiler.input" @@ -169,7 +169,7 @@ <tool id="org.rtems.cdt.cpp.compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler" - command="${ORG_RTEMS_CDT_TARGET}-rtems${ORG_RTEMS_CDT_VERSION}-g++"> + commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> <inputType id="org.rtems.cdt.cpp.compiler.input" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input" @@ -178,12 +178,12 @@ <tool id="org.rtems.cdt.assembler" superClass="cdt.managedbuild.tool.gnu.assembler" - command="${ORG_RTEMS_CDT_TARGET}-rtems${ORG_RTEMS_CDT_VERSION}-as"> + commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> </tool> <tool id="org.rtems.cdt.c.linker" superClass="cdt.managedbuild.tool.gnu.c.linker" - command="${ORG_RTEMS_CDT_TARGET}-rtems${ORG_RTEMS_CDT_VERSION}-gcc"> + commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> <enablement type="ALL"> <not> <checkBuildProperty @@ -195,7 +195,7 @@ <tool id="org.rtems.cdt.cpp.linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker" - command="${ORG_RTEMS_CDT_TARGET}-rtems${ORG_RTEMS_CDT_VERSION}-g++"> + commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> <enablement type="ALL"> <not> <checkBuildProperty @@ -207,7 +207,7 @@ <tool id="org.rtems.cdt.archiver" superClass="cdt.managedbuild.tool.gnu.archiver" - command="${ORG_RTEMS_CDT_TARGET}-rtems${ORG_RTEMS_CDT_VERSION}-ar"> + commandLineGenerator="org.rtems.cdt.build.CommandLineGenerator"> <enablement type="ALL"> <checkBuildProperty property="org.eclipse.cdt.build.core.buildArtefactType" |