Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2017-11-07 03:39:52 +0000
committerDoug Schaefer2017-11-07 16:01:15 +0000
commit76e1842644f2af46213ab01a8a428a234d965f39 (patch)
tree1af6f003245263d6a4dff10e15d432fa69bc1c80 /build/org.eclipse.cdt.build.gcc.core
parent9a9e80e115dc943e9964b238d9b9697682d47e6a (diff)
downloadorg.eclipse.cdt-76e1842644f2af46213ab01a8a428a234d965f39.tar.gz
org.eclipse.cdt-76e1842644f2af46213ab01a8a428a234d965f39.tar.xz
org.eclipse.cdt-76e1842644f2af46213ab01a8a428a234d965f39.zip
Implement ordering of toolchains.
Introduce toolchain types independent of providers. Change-Id: I2cf3145920fcf4e7132468b6e653d7ea3e211127
Diffstat (limited to 'build/org.eclipse.cdt.build.gcc.core')
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/plugin.xml8
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/ClangToolChain.java36
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java14
-rw-r--r--build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCUserToolChainProvider.java11
4 files changed, 54 insertions, 15 deletions
diff --git a/build/org.eclipse.cdt.build.gcc.core/plugin.xml b/build/org.eclipse.cdt.build.gcc.core/plugin.xml
index 036b2b8f894..bc185a5f43f 100644
--- a/build/org.eclipse.cdt.build.gcc.core/plugin.xml
+++ b/build/org.eclipse.cdt.build.gcc.core/plugin.xml
@@ -15,6 +15,14 @@
class="org.eclipse.cdt.build.gcc.core.GCCUserToolChainProvider"
id="org.eclipse.cdt.build.gcc.core.provider.user">
</provider>
+ <type
+ id="org.eclipse.cdt.build.gcc"
+ name="GCC">
+ </type>
+ <type
+ id="org.eclipse.cdt.build.clang"
+ name="clang">
+ </type>
</extension>
</plugin>
diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/ClangToolChain.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/ClangToolChain.java
new file mode 100644
index 00000000000..773e75fcc52
--- /dev/null
+++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/ClangToolChain.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2017 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.eclipse.cdt.build.gcc.core;
+
+import java.nio.file.Path;
+
+import org.eclipse.cdt.core.build.IToolChainProvider;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
+
+/**
+ * The Clang toolchain. There's little different from the GCC toolchain other
+ * than the toolchain type and name.
+ *
+ * @author dschaefer
+ *
+ */
+public class ClangToolChain extends GCCToolChain {
+
+ private static final String TYPE_ID = "org.eclipse.cdt.build.clang"; //$NON-NLS-1$
+
+ public ClangToolChain(IToolChainProvider provider, Path pathToToolChain, String arch,
+ IEnvironmentVariable[] envVars) {
+ super(provider, pathToToolChain, arch, envVars);
+ }
+
+ @Override
+ public String getTypeId() {
+ return TYPE_ID;
+ }
+
+}
diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java
index ea791e734da..bf9d5839cca 100644
--- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java
+++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java
@@ -51,6 +51,8 @@ import org.eclipse.core.runtime.PlatformObject;
*/
public class GCCToolChain extends PlatformObject implements IToolChain {
+ public static final String TYPE_ID = "org.eclipse.cdt.build.gcc"; //$NON-NLS-1$
+
private final IToolChainProvider provider;
private final String id;
private final Path path;
@@ -144,6 +146,11 @@ public class GCCToolChain extends PlatformObject implements IToolChain {
this.envVars = envVars;
}
+ @Override
+ public String getTypeId() {
+ return TYPE_ID;
+ }
+
public Path getPath() {
return path;
}
@@ -165,21 +172,20 @@ public class GCCToolChain extends PlatformObject implements IToolChain {
@Override
public String getName() {
- StringBuilder name = new StringBuilder("GCC"); //$NON-NLS-1$
+ StringBuilder name = new StringBuilder(); // $NON-NLS-1$
String os = getProperty(ATTR_OS);
if (os != null) {
- name.append(' ');
name.append(os);
+ name.append(' ');
}
String arch = getProperty(ATTR_ARCH);
if (arch != null) {
- name.append(' ');
name.append(arch);
+ name.append(' ');
}
if (path != null) {
- name.append(' ');
name.append(path.toString());
}
diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCUserToolChainProvider.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCUserToolChainProvider.java
index b7b25e9d993..368757982a9 100644
--- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCUserToolChainProvider.java
+++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCUserToolChainProvider.java
@@ -15,7 +15,6 @@ import java.io.Writer;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -201,16 +200,6 @@ public class GCCUserToolChainProvider implements IUserToolChainProvider {
manager.removeToolChain(toolChain);
}
- @Override
- public IToolChain getToolChain(String id) throws CoreException {
- Collection<IToolChain> tcs = manager.getToolChains(PROVIDER_ID, id);
- if (tcs.isEmpty()) {
- return null;
- } else {
- return tcs.iterator().next();
- }
- }
-
private void saveJsonFile() throws IOException {
try (Writer writer = new FileWriter(getJsonFile())) {
writer.write(new Gson().toJson(toolChains));

Back to the top