mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 06:32:10 +02:00
Bug 467771 - add basis to support autotools option as NAME=VALUE
It is not obvious in autotools preferences UI how to set variables like CC=/sbin/gcc Introduces the basis to allow extend the UI to include such as kind of variables. Change-Id: Ife0aada50d8c253f3fff39e7087f5fd54803ba48 Signed-off-by: Wainer dos Santos Moschetta <wainersm@linux.vnet.ibm.com>
This commit is contained in:
parent
9d492879be
commit
880b1b606a
10 changed files with 344 additions and 2 deletions
|
@ -58,5 +58,10 @@ public class AutotoolsOptionConstants {
|
||||||
public static final String TOOL_AUTOGEN = "autogen"; // $NON-NLS-1$
|
public static final String TOOL_AUTOGEN = "autogen"; // $NON-NLS-1$
|
||||||
public static final String CATEGORY_OPTIONS = "options"; // $NON-NLS-1$
|
public static final String CATEGORY_OPTIONS = "options"; // $NON-NLS-1$
|
||||||
public static final String OPT_AUTOGENOPTS = "autogenOpts"; // $NON-NLS-1$
|
public static final String OPT_AUTOGENOPTS = "autogenOpts"; // $NON-NLS-1$
|
||||||
|
/**
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
public static final String CATEGORY_ENVVAR = "cat_envvar"; // $NON-NLS-1$
|
||||||
|
public final static String OPT_ENVVAR = "env_vars"; // $NON-NLS-1$
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,10 @@ public interface IAutotoolsOption {
|
||||||
int TOOL = 5;
|
int TOOL = 5;
|
||||||
int FLAG = 6;
|
int FLAG = 6;
|
||||||
int FLAGVALUE = 7;
|
int FLAGVALUE = 7;
|
||||||
|
/**
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
int ENVVAR = 8;
|
||||||
|
|
||||||
int getType();
|
int getType();
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,8 @@ public class AutotoolsConfiguration implements IAConfiguration {
|
||||||
new Option(AutotoolsOptionConstants.OPT_PROGRAM_PREFIX, "program_prefix", IConfigureOption.STRING), // $NON-NLS-1$
|
new Option(AutotoolsOptionConstants.OPT_PROGRAM_PREFIX, "program_prefix", IConfigureOption.STRING), // $NON-NLS-1$
|
||||||
new Option(AutotoolsOptionConstants.OPT_PROGRAM_SUFFIX, "program_suffix", IConfigureOption.STRING), // $NON-NLS-1$
|
new Option(AutotoolsOptionConstants.OPT_PROGRAM_SUFFIX, "program_suffix", IConfigureOption.STRING), // $NON-NLS-1$
|
||||||
new Option(AutotoolsOptionConstants.OPT_PROGRAM_TRANSFORM_NAME, "program_transform_name", IConfigureOption.STRING), // $NON-NLS-1$
|
new Option(AutotoolsOptionConstants.OPT_PROGRAM_TRANSFORM_NAME, "program_transform_name", IConfigureOption.STRING), // $NON-NLS-1$
|
||||||
|
new Option(AutotoolsOptionConstants.CATEGORY_ENVVAR, IConfigureOption.CATEGORY),
|
||||||
|
new Option(AutotoolsOptionConstants.OPT_ENVVAR, IConfigureOption.ENVVAR),
|
||||||
new Option(AutotoolsOptionConstants.CATEGORY_FEATURES, IConfigureOption.CATEGORY),
|
new Option(AutotoolsOptionConstants.CATEGORY_FEATURES, IConfigureOption.CATEGORY),
|
||||||
new Option(AutotoolsOptionConstants.OPT_ENABLE_MAINTAINER_MODE, "enable_maintainer_mode", IConfigureOption.BIN), // $NON-NLS-1$
|
new Option(AutotoolsOptionConstants.OPT_ENABLE_MAINTAINER_MODE, "enable_maintainer_mode", IConfigureOption.BIN), // $NON-NLS-1$
|
||||||
new Option(AutotoolsOptionConstants.FLAG_CFLAGS, "cflags", AutotoolsOptionConstants.FLAG_CFLAGS_FLAGS, IConfigureOption.FLAG), // $NON-NLS-1$
|
new Option(AutotoolsOptionConstants.FLAG_CFLAGS, "cflags", AutotoolsOptionConstants.FLAG_CFLAGS_FLAGS, IConfigureOption.FLAG), // $NON-NLS-1$
|
||||||
|
@ -193,6 +195,12 @@ public class AutotoolsConfiguration implements IAConfiguration {
|
||||||
lastFlag.addChild(opt.name);
|
lastFlag.addChild(opt.name);
|
||||||
configOptions.put(opt.name, fv);
|
configOptions.put(opt.name, fv);
|
||||||
break;
|
break;
|
||||||
|
case IConfigureOption.ENVVAR:
|
||||||
|
VariableConfigureOption v = new VariableConfigureOption(opt.name, opt.transformedName, this);
|
||||||
|
if (defaultValue != null)
|
||||||
|
v.setValue(defaultValue);
|
||||||
|
configOptions.put(opt.name, v);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
toolList = tools.toArray(new Option[tools.size()]);
|
toolList = tools.toArray(new Option[tools.size()]);
|
||||||
|
|
|
@ -566,6 +566,7 @@ public class AutotoolsConfigurationManager implements IResourceChangeListener {
|
||||||
case FLAGVALUE:
|
case FLAGVALUE:
|
||||||
case MULTIARG:
|
case MULTIARG:
|
||||||
case INTERNAL:
|
case INTERNAL:
|
||||||
|
case ENVVAR:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -91,6 +91,10 @@ Option.configure.cflags_gcov.parm=-fprofile-arcs -ftest-coverage
|
||||||
|
|
||||||
Option.configure.cflags=Compiler Flags:
|
Option.configure.cflags=Compiler Flags:
|
||||||
|
|
||||||
|
Option.configure.cat_envvar=Environment variables
|
||||||
|
Option.configure.env_vars=Export environment variables
|
||||||
|
Option.configure.env_vars.tip=Environment variables to be used during configuration
|
||||||
|
|
||||||
Option.configure.autogen=autogen
|
Option.configure.autogen=autogen
|
||||||
Option.configure.options=Options
|
Option.configure.options=Options
|
||||||
Option.configure.autogenOpts=Additional command-line options
|
Option.configure.autogenOpts=Additional command-line options
|
||||||
|
|
|
@ -24,6 +24,10 @@ public interface IConfigureOption {
|
||||||
int TOOL = IAutotoolsOption.TOOL;
|
int TOOL = IAutotoolsOption.TOOL;
|
||||||
int FLAG = IAutotoolsOption.FLAG;
|
int FLAG = IAutotoolsOption.FLAG;
|
||||||
int FLAGVALUE = IAutotoolsOption.FLAGVALUE;
|
int FLAGVALUE = IAutotoolsOption.FLAGVALUE;
|
||||||
|
/**
|
||||||
|
* @since 2.0
|
||||||
|
*/
|
||||||
|
int ENVVAR = IAutotoolsOption.ENVVAR;
|
||||||
|
|
||||||
String getName();
|
String getName();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2016 IBM Corporation.
|
||||||
|
* 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
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Wainer dos Santos Moschetta - initial implementation
|
||||||
|
*******************************************************************************/
|
||||||
|
package org.eclipse.cdt.internal.autotools.core.configure;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents a a list of environment variables as NAME="VALUE"
|
||||||
|
*
|
||||||
|
* @since 2.0
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class VariableConfigureOption extends AbstractConfigurationOption {
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
public VariableConfigureOption(String name, AutotoolsConfiguration cfg) {
|
||||||
|
super(name, cfg);
|
||||||
|
this.value = ""; // $NON-NLS-1$
|
||||||
|
}
|
||||||
|
|
||||||
|
public VariableConfigureOption(String name, String transformedName, AutotoolsConfiguration autotoolsConfiguration) {
|
||||||
|
super(name, transformedName, autotoolsConfiguration);
|
||||||
|
this.value = ""; // $NON-NLS-1$
|
||||||
|
}
|
||||||
|
|
||||||
|
public VariableConfigureOption(String name, AutotoolsConfiguration cfg, String value) {
|
||||||
|
super(name, cfg);
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getParameter() {
|
||||||
|
if (isParmSet())
|
||||||
|
return this.value;
|
||||||
|
return ""; //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isParmSet() {
|
||||||
|
return !this.value.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IConfigureOption copy(AutotoolsConfiguration cfg) {
|
||||||
|
return new VariableConfigureOption(name, cfg, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setValue(String newValue) {
|
||||||
|
if (!newValue.equals(value)) {
|
||||||
|
cfg.setDirty(true);
|
||||||
|
value = newValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getType() {
|
||||||
|
return ENVVAR;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -22,7 +22,8 @@ Require-Bundle: org.eclipse.ui,
|
||||||
org.eclipse.core.filesystem;bundle-version="1.2.0",
|
org.eclipse.core.filesystem;bundle-version="1.2.0",
|
||||||
org.eclipse.cdt.make.ui;bundle-version="6.0.0",
|
org.eclipse.cdt.make.ui;bundle-version="6.0.0",
|
||||||
org.eclipse.ui.views;bundle-version="3.4.0",
|
org.eclipse.ui.views;bundle-version="3.4.0",
|
||||||
org.eclipse.cdt.remote.core;bundle-version="1.0.0"
|
org.eclipse.cdt.remote.core;bundle-version="1.0.0",
|
||||||
|
org.eclipse.swt
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Export-Package: org.eclipse.cdt.autotools.ui,
|
Export-Package: org.eclipse.cdt.autotools.ui,
|
||||||
|
|
|
@ -16,15 +16,26 @@ import java.util.List;
|
||||||
import org.eclipse.cdt.internal.autotools.core.configure.AutotoolsConfiguration;
|
import org.eclipse.cdt.internal.autotools.core.configure.AutotoolsConfiguration;
|
||||||
import org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration;
|
import org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration;
|
||||||
import org.eclipse.cdt.internal.autotools.core.configure.IConfigureOption;
|
import org.eclipse.cdt.internal.autotools.core.configure.IConfigureOption;
|
||||||
|
import org.eclipse.jface.dialogs.Dialog;
|
||||||
|
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||||
import org.eclipse.jface.preference.BooleanFieldEditor;
|
import org.eclipse.jface.preference.BooleanFieldEditor;
|
||||||
import org.eclipse.jface.preference.FieldEditor;
|
import org.eclipse.jface.preference.FieldEditor;
|
||||||
|
import org.eclipse.jface.preference.ListEditor;
|
||||||
import org.eclipse.jface.preference.StringFieldEditor;
|
import org.eclipse.jface.preference.StringFieldEditor;
|
||||||
import org.eclipse.jface.util.PropertyChangeEvent;
|
import org.eclipse.jface.util.PropertyChangeEvent;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.events.ModifyEvent;
|
||||||
|
import org.eclipse.swt.events.ModifyListener;
|
||||||
|
import org.eclipse.swt.graphics.FontMetrics;
|
||||||
|
import org.eclipse.swt.graphics.GC;
|
||||||
import org.eclipse.swt.layout.GridData;
|
import org.eclipse.swt.layout.GridData;
|
||||||
import org.eclipse.swt.layout.GridLayout;
|
import org.eclipse.swt.layout.GridLayout;
|
||||||
|
import org.eclipse.swt.widgets.Button;
|
||||||
import org.eclipse.swt.widgets.Composite;
|
import org.eclipse.swt.widgets.Composite;
|
||||||
|
import org.eclipse.swt.widgets.Control;
|
||||||
import org.eclipse.swt.widgets.Label;
|
import org.eclipse.swt.widgets.Label;
|
||||||
|
import org.eclipse.swt.widgets.Shell;
|
||||||
|
import org.eclipse.swt.widgets.Text;
|
||||||
|
|
||||||
public class AutotoolsCategoryPropertyOptionPage extends
|
public class AutotoolsCategoryPropertyOptionPage extends
|
||||||
AbstractConfigurePropertyOptionsPage {
|
AbstractConfigurePropertyOptionsPage {
|
||||||
|
@ -70,7 +81,225 @@ public class AutotoolsCategoryPropertyOptionPage extends
|
||||||
@Override
|
@Override
|
||||||
protected void doStore() {}
|
protected void doStore() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class VariableListEditor extends ListEditor {
|
||||||
|
Composite fParent;
|
||||||
|
String fName;
|
||||||
|
String fLabelText;
|
||||||
|
boolean isLoaded;
|
||||||
|
|
||||||
|
public VariableListEditor(String name, String labelText, Composite parent) {
|
||||||
|
fName = name;
|
||||||
|
fLabelText = labelText;
|
||||||
|
fParent = parent;
|
||||||
|
isLoaded = false;
|
||||||
|
init(fName, fLabelText);
|
||||||
|
createControl(fParent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void selectionChanged() {
|
||||||
|
super.selectionChanged();
|
||||||
|
super.fireValueChanged(getPreferenceName(), "", ""); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String createList(String[] arg0) {
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
for (String item : arg0) {
|
||||||
|
sb.append(item);
|
||||||
|
sb.append("\\s"); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doLoad() {
|
||||||
|
if (!isLoaded) {
|
||||||
|
super.doLoad();
|
||||||
|
isLoaded = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public void setToolTipText(String toolTip) {
|
||||||
|
this.getLabelControl().setToolTipText(toolTip);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dialog user inputs variable's name and value.
|
||||||
|
*/
|
||||||
|
class DialogNewVar extends Dialog {
|
||||||
|
private String name;
|
||||||
|
private Text fTextName;
|
||||||
|
private String value;
|
||||||
|
private Text fTextValue;
|
||||||
|
private Button fOkButton;
|
||||||
|
|
||||||
|
public DialogNewVar(Shell shell) {
|
||||||
|
super(shell);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configureShell(Shell newShell) {
|
||||||
|
super.configureShell(newShell);
|
||||||
|
newShell.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.title"));
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Control createDialogArea(Composite parent) {
|
||||||
|
Composite composite = new Composite(parent, SWT.NONE);
|
||||||
|
GridLayout layout = new GridLayout(2, false);
|
||||||
|
layout.marginWidth = 5;
|
||||||
|
layout.numColumns = 2;
|
||||||
|
composite.setLayout(layout);
|
||||||
|
|
||||||
|
GC gc = new GC(composite);
|
||||||
|
gc.setFont(composite.getFont());
|
||||||
|
FontMetrics metrics = gc.getFontMetrics();
|
||||||
|
gc.dispose();
|
||||||
|
int fieldWidthHint = convertWidthInCharsToPixels(metrics, 50);
|
||||||
|
|
||||||
|
Label label = new Label(composite, SWT.NONE);
|
||||||
|
label.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.name_field"));
|
||||||
|
fTextName = new Text(composite, SWT.SINGLE | SWT.BORDER);
|
||||||
|
GridData gd = new GridData(GridData.FILL_BOTH);
|
||||||
|
gd.grabExcessHorizontalSpace = true;
|
||||||
|
gd.widthHint = fieldWidthHint;
|
||||||
|
fTextName.setLayoutData(gd);
|
||||||
|
// Name field cannot be empty.
|
||||||
|
fTextName.addModifyListener(new ModifyListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void modifyText(ModifyEvent e) {
|
||||||
|
if (fOkButton != null) {
|
||||||
|
fOkButton.setEnabled(fTextName.getText().length() > 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
label = new Label(composite, SWT.NONE);
|
||||||
|
label.setText(AutotoolsPropertyMessages.getString("NewEnvVarDialog.value_field"));
|
||||||
|
fTextValue = new Text(composite, SWT.SINGLE | SWT.BORDER);
|
||||||
|
gd = new GridData(GridData.FILL_BOTH);
|
||||||
|
gd.grabExcessHorizontalSpace = true;
|
||||||
|
gd.widthHint = fieldWidthHint;
|
||||||
|
fTextValue.setLayoutData(gd);
|
||||||
|
return composite;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Obtain instance of OK button and set disabled.
|
||||||
|
@Override
|
||||||
|
protected Control createButtonBar(Composite parent) {
|
||||||
|
Control control = super.createButtonBar(parent);
|
||||||
|
fOkButton = getButton(IDialogConstants.OK_ID);
|
||||||
|
fOkButton.setEnabled(false);
|
||||||
|
return control;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void okPressed() {
|
||||||
|
name = fTextName.getText().trim();
|
||||||
|
value = fTextValue.getText();
|
||||||
|
if (value != null) {
|
||||||
|
value = value.trim();
|
||||||
|
} else {
|
||||||
|
value = ""; //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
super.okPressed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getNewInputObject() {
|
||||||
|
DialogNewVar newDialog = new DialogNewVar(getShell());
|
||||||
|
newDialog.open();
|
||||||
|
String name = newDialog.getName();
|
||||||
|
|
||||||
|
// Create quoted string like CFLAGS="-q -O3"
|
||||||
|
if (name != null) {
|
||||||
|
String quote = "\""; //$NON-NLS-1$
|
||||||
|
StringBuilder sb = new StringBuilder(name.trim());
|
||||||
|
sb.append("="); //$NON-NLS-1$
|
||||||
|
String value = newDialog.getValue();
|
||||||
|
if (value != null) {
|
||||||
|
value = value.trim();
|
||||||
|
if (value.length() == 0) {
|
||||||
|
// Check empty value
|
||||||
|
sb.append(quote);
|
||||||
|
sb.append(quote);
|
||||||
|
} else if (value.charAt(0) == '"' && value.charAt(value.length() - 1) == '"') {
|
||||||
|
// Check user has already quoted it.
|
||||||
|
sb.append(value);
|
||||||
|
} else {
|
||||||
|
sb.append(quote);
|
||||||
|
sb.append(value);
|
||||||
|
sb.append(quote);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Expect string with format: VAR1="VALUE1" VAR2="VALUE2". Count quotes
|
||||||
|
* to mark end of a variable.
|
||||||
|
*
|
||||||
|
* @see
|
||||||
|
* org.eclipse.jface.preference.ListEditor#parseString(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected String[] parseString(String str) {
|
||||||
|
if (str == null) {
|
||||||
|
return new String[] {};
|
||||||
|
}
|
||||||
|
ArrayList<String> variables = new ArrayList<>();
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
int i = 0;
|
||||||
|
int quote = 0; // 0 = begin variable,
|
||||||
|
// 1 = looking for end of variable.
|
||||||
|
while (i < str.length()) {
|
||||||
|
char c = str.charAt(i);
|
||||||
|
sb.append(c);
|
||||||
|
if (c == '"') {
|
||||||
|
quote++;
|
||||||
|
}
|
||||||
|
if (quote == 2) {
|
||||||
|
// Found end of variable.
|
||||||
|
quote = 0;
|
||||||
|
variables.add(sb.toString());
|
||||||
|
sb.delete(0, sb.length());
|
||||||
|
i++; // Skip whitespace char separating variables.
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return variables.toArray(new String[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of environment variables in a single line.
|
||||||
|
*
|
||||||
|
* @return environment variables
|
||||||
|
*/
|
||||||
|
public String getVariablesValue() {
|
||||||
|
org.eclipse.swt.widgets.List list = super.getList();
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (String var : list.getItems()) {
|
||||||
|
sb.append(var);
|
||||||
|
sb.append(" "); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
return sb.toString().trim();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private List<FieldEditor> fieldEditors;
|
private List<FieldEditor> fieldEditors;
|
||||||
|
|
||||||
public AutotoolsCategoryPropertyOptionPage(ToolListElement element, IAConfiguration cfg) {
|
public AutotoolsCategoryPropertyOptionPage(ToolListElement element, IAConfiguration cfg) {
|
||||||
|
@ -120,6 +349,12 @@ public class AutotoolsCategoryPropertyOptionPage extends
|
||||||
addField(l);
|
addField(l);
|
||||||
fieldEditors.add(l);
|
fieldEditors.add(l);
|
||||||
break;
|
break;
|
||||||
|
case IConfigureOption.ENVVAR:
|
||||||
|
VariableListEditor listEditor = new VariableListEditor(option.getName(), option.getDescription(), area);
|
||||||
|
listEditor.setToolTipText(option.getToolTip());
|
||||||
|
addField(listEditor);
|
||||||
|
fieldEditors.add(listEditor);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,6 +385,9 @@ public class AutotoolsCategoryPropertyOptionPage extends
|
||||||
} else if (event.getSource() instanceof BooleanFieldEditor) {
|
} else if (event.getSource() instanceof BooleanFieldEditor) {
|
||||||
BooleanFieldEditor b = (BooleanFieldEditor)event.getSource();
|
BooleanFieldEditor b = (BooleanFieldEditor)event.getSource();
|
||||||
cfg.setOption(b.getPreferenceName(), Boolean.toString(b.getBooleanValue()));
|
cfg.setOption(b.getPreferenceName(), Boolean.toString(b.getBooleanValue()));
|
||||||
|
} else if (event.getSource() instanceof VariableListEditor) {
|
||||||
|
VariableListEditor v = (VariableListEditor) event.getSource();
|
||||||
|
cfg.setOption(v.getPreferenceName(), v.getVariablesValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,3 +42,7 @@ CleanMakeTarget.tooltip=Specify a top-level make target to clean build directory
|
||||||
|
|
||||||
AutoBuildName.label=Automatically generate build directory names for additional configurations
|
AutoBuildName.label=Automatically generate build directory names for additional configurations
|
||||||
AutoBuildName.tooltip=When a configuration other than the first configuration is created, generate a unique build directory using the configuration name.
|
AutoBuildName.tooltip=When a configuration other than the first configuration is created, generate a unique build directory using the configuration name.
|
||||||
|
|
||||||
|
NewEnvVarDialog.title=New environment variable
|
||||||
|
NewEnvVarDialog.name_field=Name:
|
||||||
|
NewEnvVarDialog.value_field=Value:
|
Loading…
Add table
Reference in a new issue