diff options
author | Doug Schaefer | 2017-11-07 16:06:07 +0000 |
---|---|---|
committer | Doug Schaefer | 2017-11-07 18:13:12 +0000 |
commit | b495a5faae5749e0bc117717ac2f4f41aa211d89 (patch) | |
tree | 07dbe2eafcfcb7ba3e3cfc58ac48285492d0e2c2 /build | |
parent | daad877559bfd72e3f7ed64e11fd98e495cdec3c (diff) | |
download | org.eclipse.cdt-b495a5faae5749e0bc117717ac2f4f41aa211d89.tar.gz org.eclipse.cdt-b495a5faae5749e0bc117717ac2f4f41aa211d89.tar.xz org.eclipse.cdt-b495a5faae5749e0bc117717ac2f4f41aa211d89.zip |
Hook up the clang toolchain now split out from GCC.
Change-Id: I6edba9e689d903546be3a65060c4ac1b9871167f
Diffstat (limited to 'build')
9 files changed, 219 insertions, 108 deletions
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 index 773e75fcc52..96fa84d7a59 100644 --- 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 @@ -1,5 +1,5 @@ /*******************************************************************************
- * Copyright (c) 2015, 2017 QNX Software Systems and others.
+ * Copyright (c) 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
@@ -21,7 +21,7 @@ import org.eclipse.cdt.core.envvar.IEnvironmentVariable; */
public class ClangToolChain extends GCCToolChain {
- private static final String TYPE_ID = "org.eclipse.cdt.build.clang"; //$NON-NLS-1$
+ public static final String TYPE_ID = "org.eclipse.cdt.build.clang"; //$NON-NLS-1$
public ClangToolChain(IToolChainProvider provider, Path pathToToolChain, String arch,
IEnvironmentVariable[] envVars) {
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 368757982a9..5e0ceb65eee 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 @@ -48,6 +48,7 @@ public class GCCUserToolChainProvider implements IUserToolChainProvider { private static final String OPERATION = "operation"; //$NON-NLS-1$ private static final String PATH = "path"; //$NON-NLS-1$ private static final String PROPERTIES = "properties"; //$NON-NLS-1$ + private static final String TYPE = "type"; //$NON-NLS-1$ private static final String VALUE = "value"; //$NON-NLS-1$ private IToolChainManager manager; @@ -73,6 +74,12 @@ public class GCCUserToolChainProvider implements IUserToolChainProvider { toolChains = new JsonParser().parse(new FileReader(jsonFile)).getAsJsonArray(); for (JsonElement element : toolChains) { JsonObject tc = element.getAsJsonObject(); + String type; + if (tc.has(TYPE)) { + type = tc.get(TYPE).getAsString(); + } else { + type = GCCToolChain.TYPE_ID; + } String arch; if (tc.has(ARCH)) { arch = tc.get(ARCH).getAsString(); @@ -100,14 +107,24 @@ public class GCCUserToolChainProvider implements IUserToolChainProvider { envvars = envlist.toArray(new IEnvironmentVariable[0]); } - GCCToolChain gcc = new GCCToolChain(this, path, arch, envvars); - if (tc.has(PROPERTIES)) { - for (JsonElement prop : tc.get(PROPERTIES).getAsJsonArray()) { - JsonObject propobj = prop.getAsJsonObject(); - gcc.setProperty(propobj.get(NAME).getAsString(), propobj.get(VALUE).getAsString()); + GCCToolChain gcc = null; + switch (type) { + case GCCToolChain.TYPE_ID: + gcc = new GCCToolChain(this, path, arch, envvars); + break; + case ClangToolChain.TYPE_ID: + gcc = new ClangToolChain(this, path, arch, envvars); + break; + } + if (gcc != null) { + if (tc.has(PROPERTIES)) { + for (JsonElement prop : tc.get(PROPERTIES).getAsJsonArray()) { + JsonObject propobj = prop.getAsJsonObject(); + gcc.setProperty(propobj.get(NAME).getAsString(), propobj.get(VALUE).getAsString()); + } } + manager.addToolChain(gcc); } - manager.addToolChain(gcc); } } } catch (IOException | IllegalStateException e) { diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java index cd1aa9daa02..cc2d84069a6 100644 --- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java +++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java @@ -12,6 +12,7 @@ import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.eclipse.cdt.build.gcc.core.ClangToolChain; import org.eclipse.cdt.build.gcc.core.GCCToolChain; import org.eclipse.cdt.build.gcc.core.GCCToolChain.GCCInfo; import org.eclipse.cdt.core.build.IToolChain; @@ -26,7 +27,8 @@ public class GCCPathToolChainProvider implements IToolChainProvider { public static final String ID = "org.eclipse.cdt.build.gcc.core.gccPathProvider"; //$NON-NLS-1$ - private static final Pattern gccPattern = Pattern.compile("(.*-)?((gcc|clang)(\\.exe)?)"); //$NON-NLS-1$ + private static final Pattern gccPattern = Pattern.compile("(.*-)?gcc(\\.exe)?"); //$NON-NLS-1$ + private static final Pattern clangPattern = Pattern.compile("clang(\\.exe)?"); //$NON-NLS-1$ @Override public String getId() { @@ -51,7 +53,7 @@ public class GCCPathToolChainProvider implements IToolChainProvider { String[] tuple = info.target.split("-"); //$NON-NLS-1$ if (tuple.length > 2) { GCCToolChain gcc = new GCCToolChain(this, file.toPath(), tuple[0], null); - + // OS switch (tuple[1]) { case "w64": //$NON-NLS-1$ @@ -70,6 +72,14 @@ public class GCCPathToolChainProvider implements IToolChainProvider { } catch (IOException e) { Activator.log(e); } + } else { + matcher = clangPattern.matcher(file.getName()); + if (matcher.matches()) { + // TODO only support host clang for now, need to figure out multi + ClangToolChain clang = new ClangToolChain(this, file.toPath(), Platform.getOSArch(), null); + clang.setProperty(IToolChain.ATTR_OS, Platform.getOS()); + manager.addToolChain(clang); + } } } } diff --git a/build/org.eclipse.cdt.build.gcc.ui/plugin.xml b/build/org.eclipse.cdt.build.gcc.ui/plugin.xml index 44d67046d7a..50313a6e23f 100644 --- a/build/org.eclipse.cdt.build.gcc.ui/plugin.xml +++ b/build/org.eclipse.cdt.build.gcc.ui/plugin.xml @@ -5,7 +5,12 @@ point="org.eclipse.cdt.ui.newToolChainWizards"> <wizard class="org.eclipse.cdt.build.gcc.ui.internal.NewGCCToolChainWizard" - name="GCC or Compatible ToolChain" + name="GCC" + providerId="org.eclipse.cdt.build.gcc.core.provider.user"> + </wizard> + <wizard + class="org.eclipse.cdt.build.gcc.ui.internal.NewClangToolChainWizard" + name="clang" providerId="org.eclipse.cdt.build.gcc.core.provider.user"> </wizard> </extension> diff --git a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/GCCToolChainSettingsPage.java b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/GCCToolChainSettingsPage.java index 22af1c0dc81..5b3ff14434f 100644 --- a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/GCCToolChainSettingsPage.java +++ b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/GCCToolChainSettingsPage.java @@ -33,10 +33,10 @@ public class GCCToolChainSettingsPage extends WizardPage { private Text osText; private Text archText; - public GCCToolChainSettingsPage(GCCToolChain toolChain) { + public GCCToolChainSettingsPage(GCCToolChain toolChain, boolean isClang) { super(GCCToolChainSettingsPage.class.getName()); this.toolChain = toolChain; - setTitle(Messages.GCCToolChainSettingsPage_Title); + setTitle(isClang ? Messages.GCCToolChainSettingsPage_ClangTitle : Messages.GCCToolChainSettingsPage_Title); setDescription(Messages.GCCToolChainSettingsPage_Description); } diff --git a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/Messages.java b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/Messages.java index 4edba7647a9..4905e7fd64b 100644 --- a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/Messages.java +++ b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/Messages.java @@ -1,54 +1,56 @@ -/******************************************************************************* - * Copyright (c) 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.ui.internal; - -import org.eclipse.osgi.util.NLS; - -public class Messages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.cdt.build.gcc.ui.internal.messages"; //$NON-NLS-1$ - public static String GCCToolChainSettingsPage_Arch; - public static String GCCToolChainSettingsPage_Browse; - public static String GCCToolChainSettingsPage_Compiler; - public static String GCCToolChainSettingsPage_Description; - public static String GCCToolChainSettingsPage_OS; - public static String GCCToolChainSettingsPage_Title; - public static String NewEnvVarDialog_Append; - public static String NewEnvVarDialog_Delimiter; - public static String NewEnvVarDialog_Edit; - public static String NewEnvVarDialog_Name; - public static String NewEnvVarDialog_New; - public static String NewEnvVarDialog_Operation; - public static String NewEnvVarDialog_Prepend; - public static String NewEnvVarDialog_Replace; - public static String NewEnvVarDialog_Select; - public static String NewEnvVarDialog_Unset; - public static String NewEnvVarDialog_Value; - public static String NewGCCToolChainWizard_Add; - public static String NewGCCToolChainWizard_New; - public static String ToolChainEnvironmentPage_Add; - public static String ToolChainEnvironmentPage_Append; - public static String ToolChainEnvironmentPage_Description; - public static String ToolChainEnvironmentPage_Edit; - public static String ToolChainEnvironmentPage_Name; - public static String ToolChainEnvironmentPage_Operation; - public static String ToolChainEnvironmentPage_Prepend; - public static String ToolChainEnvironmentPage_Remove; - public static String ToolChainEnvironmentPage_RemoveMessage; - public static String ToolChainEnvironmentPage_RemoveTitle; - public static String ToolChainEnvironmentPage_Replace; - public static String ToolChainEnvironmentPage_Title; - public static String ToolChainEnvironmentPage_Unset; - public static String ToolChainEnvironmentPage_Value; - static { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, Messages.class); - } - - private Messages() { - } -} +/*******************************************************************************
+ * Copyright (c) 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.ui.internal;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.cdt.build.gcc.ui.internal.messages"; //$NON-NLS-1$
+ public static String GCCToolChainSettingsPage_Arch;
+ public static String GCCToolChainSettingsPage_Browse;
+ public static String GCCToolChainSettingsPage_ClangTitle;
+ public static String GCCToolChainSettingsPage_Compiler;
+ public static String GCCToolChainSettingsPage_Description;
+ public static String GCCToolChainSettingsPage_OS;
+ public static String GCCToolChainSettingsPage_Title;
+ public static String NewClangToolChainWizard_Title;
+ public static String NewEnvVarDialog_Append;
+ public static String NewEnvVarDialog_Delimiter;
+ public static String NewEnvVarDialog_Edit;
+ public static String NewEnvVarDialog_Name;
+ public static String NewEnvVarDialog_New;
+ public static String NewEnvVarDialog_Operation;
+ public static String NewEnvVarDialog_Prepend;
+ public static String NewEnvVarDialog_Replace;
+ public static String NewEnvVarDialog_Select;
+ public static String NewEnvVarDialog_Unset;
+ public static String NewEnvVarDialog_Value;
+ public static String NewGCCToolChainWizard_Add;
+ public static String NewGCCToolChainWizard_New;
+ public static String ToolChainEnvironmentPage_Add;
+ public static String ToolChainEnvironmentPage_Append;
+ public static String ToolChainEnvironmentPage_Description;
+ public static String ToolChainEnvironmentPage_Edit;
+ public static String ToolChainEnvironmentPage_Name;
+ public static String ToolChainEnvironmentPage_Operation;
+ public static String ToolChainEnvironmentPage_Prepend;
+ public static String ToolChainEnvironmentPage_Remove;
+ public static String ToolChainEnvironmentPage_RemoveMessage;
+ public static String ToolChainEnvironmentPage_RemoveTitle;
+ public static String ToolChainEnvironmentPage_Replace;
+ public static String ToolChainEnvironmentPage_Title;
+ public static String ToolChainEnvironmentPage_Unset;
+ public static String ToolChainEnvironmentPage_Value;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewClangToolChainWizard.java b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewClangToolChainWizard.java new file mode 100644 index 00000000000..a4892173050 --- /dev/null +++ b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewClangToolChainWizard.java @@ -0,0 +1,75 @@ +/*******************************************************************************
+ * Copyright (c) 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.ui.internal;
+
+import java.nio.file.Path;
+
+import org.eclipse.cdt.build.gcc.core.ClangToolChain;
+import org.eclipse.cdt.build.gcc.core.GCCToolChain;
+import org.eclipse.cdt.build.gcc.core.GCCUserToolChainProvider;
+import org.eclipse.cdt.core.build.IToolChain;
+import org.eclipse.cdt.core.build.IToolChainManager;
+import org.eclipse.cdt.core.build.IUserToolChainProvider;
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
+import org.eclipse.cdt.ui.build.ToolChainWizard;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+
+public class NewClangToolChainWizard extends ToolChainWizard {
+
+ private GCCToolChainSettingsPage settingsPage;
+ private ToolChainEnvironmentPage envPage;
+
+ @Override
+ public boolean performFinish() {
+ Path path = settingsPage.getPath();
+ String os = settingsPage.getOS();
+ String arch = settingsPage.getArch();
+ IEnvironmentVariable[] envvars = envPage.getEnvVars();
+
+ new Job(Messages.NewGCCToolChainWizard_Add) {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ IToolChainManager manager = Activator.getService(IToolChainManager.class);
+ IUserToolChainProvider provider = (IUserToolChainProvider) manager
+ .getProvider(GCCUserToolChainProvider.PROVIDER_ID);
+
+ if (toolChain != null) {
+ provider.removeToolChain(toolChain);
+ }
+
+ ClangToolChain gcc = new ClangToolChain(provider, path, arch, envvars);
+ gcc.setProperty(IToolChain.ATTR_OS, os);
+ provider.addToolChain(gcc);
+ return Status.OK_STATUS;
+ } catch (CoreException e) {
+ return e.getStatus();
+ }
+ }
+ }.schedule();
+ return true;
+ }
+
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ settingsPage = new GCCToolChainSettingsPage((GCCToolChain) toolChain, true);
+ addPage(settingsPage);
+
+ envPage = new ToolChainEnvironmentPage(toolChain);
+ addPage(envPage);
+
+ setWindowTitle(Messages.NewClangToolChainWizard_Title);
+ }
+
+}
diff --git a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewGCCToolChainWizard.java b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewGCCToolChainWizard.java index b6fcb97fa04..fd34546ad67 100644 --- a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewGCCToolChainWizard.java +++ b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/NewGCCToolChainWizard.java @@ -62,7 +62,7 @@ public class NewGCCToolChainWizard extends ToolChainWizard { public void addPages() { super.addPages(); - settingsPage = new GCCToolChainSettingsPage((GCCToolChain) toolChain); + settingsPage = new GCCToolChainSettingsPage((GCCToolChain) toolChain, false); addPage(settingsPage); envPage = new ToolChainEnvironmentPage(toolChain); diff --git a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/messages.properties b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/messages.properties index da97717652f..47aa4fe0d0d 100644 --- a/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/messages.properties +++ b/build/org.eclipse.cdt.build.gcc.ui/src/org/eclipse/cdt/build/gcc/ui/internal/messages.properties @@ -1,40 +1,42 @@ -################################################################################ -# Copyright (c) 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 -################################################################################ -GCCToolChainSettingsPage_Arch=CPU Architecture: -GCCToolChainSettingsPage_Browse=Browse... -GCCToolChainSettingsPage_Compiler=Compiler: -GCCToolChainSettingsPage_Description=Enter the path to the compiler and properties for the toolchain. -GCCToolChainSettingsPage_OS=Operating System: -GCCToolChainSettingsPage_Title=GCC ToolChain Settings -NewEnvVarDialog_Append=Append -NewEnvVarDialog_Delimiter=Delimiter: -NewEnvVarDialog_Edit=Edit Environment Variable -NewEnvVarDialog_Name=Name: -NewEnvVarDialog_New=New Environment Variable -NewEnvVarDialog_Operation=Operation -NewEnvVarDialog_Prepend=Prepend -NewEnvVarDialog_Replace=Replace -NewEnvVarDialog_Select=Select... -NewEnvVarDialog_Unset=Unset -NewEnvVarDialog_Value=Value: -NewGCCToolChainWizard_Add=Add ToolChain -NewGCCToolChainWizard_New=New GCC ToolChain -ToolChainEnvironmentPage_Add=Add... -ToolChainEnvironmentPage_Append=Append -ToolChainEnvironmentPage_Description=Environment variables to set when using toolchain. -ToolChainEnvironmentPage_Edit=Edit... -ToolChainEnvironmentPage_Name=Name -ToolChainEnvironmentPage_Operation=Operation -ToolChainEnvironmentPage_Prepend=Prepend -ToolChainEnvironmentPage_Remove=Remove -ToolChainEnvironmentPage_RemoveMessage=Are you sure you would like to remove the selected environment variable(s) -ToolChainEnvironmentPage_RemoveTitle=Remove -ToolChainEnvironmentPage_Replace=Replace -ToolChainEnvironmentPage_Title=Environment Variables -ToolChainEnvironmentPage_Unset=Unset -ToolChainEnvironmentPage_Value=Value +################################################################################
+# Copyright (c) 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
+################################################################################
+GCCToolChainSettingsPage_Arch=CPU Architecture:
+GCCToolChainSettingsPage_Browse=Browse...
+GCCToolChainSettingsPage_ClangTitle=clang Toolchain Settings
+GCCToolChainSettingsPage_Compiler=Compiler:
+GCCToolChainSettingsPage_Description=Enter the path to the compiler and properties for the toolchain.
+GCCToolChainSettingsPage_OS=Operating System:
+GCCToolChainSettingsPage_Title=GCC ToolChain Settings
+NewClangToolChainWizard_Title=New clang Toolchain
+NewEnvVarDialog_Append=Append
+NewEnvVarDialog_Delimiter=Delimiter:
+NewEnvVarDialog_Edit=Edit Environment Variable
+NewEnvVarDialog_Name=Name:
+NewEnvVarDialog_New=New Environment Variable
+NewEnvVarDialog_Operation=Operation
+NewEnvVarDialog_Prepend=Prepend
+NewEnvVarDialog_Replace=Replace
+NewEnvVarDialog_Select=Select...
+NewEnvVarDialog_Unset=Unset
+NewEnvVarDialog_Value=Value:
+NewGCCToolChainWizard_Add=Add ToolChain
+NewGCCToolChainWizard_New=New GCC ToolChain
+ToolChainEnvironmentPage_Add=Add...
+ToolChainEnvironmentPage_Append=Append
+ToolChainEnvironmentPage_Description=Environment variables to set when using toolchain.
+ToolChainEnvironmentPage_Edit=Edit...
+ToolChainEnvironmentPage_Name=Name
+ToolChainEnvironmentPage_Operation=Operation
+ToolChainEnvironmentPage_Prepend=Prepend
+ToolChainEnvironmentPage_Remove=Remove
+ToolChainEnvironmentPage_RemoveMessage=Are you sure you would like to remove the selected environment variable(s)
+ToolChainEnvironmentPage_RemoveTitle=Remove
+ToolChainEnvironmentPage_Replace=Replace
+ToolChainEnvironmentPage_Title=Environment Variables
+ToolChainEnvironmentPage_Unset=Unset
+ToolChainEnvironmentPage_Value=Value
|