summaryrefslogtreecommitdiffstats
path: root/org.rtems.cdt.toolchain2
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2008-11-28 11:05:27 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2008-11-28 11:05:27 +0000
commit9fef14d8fa5fd554e2817f93646234d879e338b6 (patch)
tree5fe9ecbe96728412e113ab9811e52a365abef88b /org.rtems.cdt.toolchain2
parentAdded PATH environment variable to provider. (diff)
downloadrtems-eclipse-plug-in-9fef14d8fa5fd554e2817f93646234d879e338b6.tar.bz2
Added command line generator.
Cleanup.
Diffstat (limited to 'org.rtems.cdt.toolchain2')
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/Constants.java12
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/PropertyExpander.java63
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/build/CommandLineGenerator.java70
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/build/MacroSupplier.java37
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/BasicSetup.java4
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/wizards/FinishSetup.java24
-rw-r--r--org.rtems.cdt.toolchain2/plugin.xml12
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"