mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 14:12:10 +02:00
Bug 568397: Add separate text boxes for separate build command and args
Change-Id: I078a1db23a69dcbde503b1dd5e496705ecccc956
This commit is contained in:
parent
e6d5c634b9
commit
b6b66b5457
10 changed files with 297 additions and 114 deletions
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true
|
||||||
Bundle-Version: 9.2.100.qualifier
|
Bundle-Version: 9.3.0.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
|
Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
|
@ -1085,18 +1085,20 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
|
||||||
@Override
|
@Override
|
||||||
public String getArguments() {
|
public String getArguments() {
|
||||||
String args = getArgumentsAttribute();
|
String args = getArgumentsAttribute();
|
||||||
String stopOnErrCmd = getStopOnErrCmd(isStopOnError());
|
if (isDefaultBuildArgsOnly()) {
|
||||||
int parallelNum = getParallelizationNum();
|
String stopOnErrCmd = getStopOnErrCmd(isStopOnError());
|
||||||
String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
|
int parallelNum = getParallelizationNum();
|
||||||
|
String parallelCmd = isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
|
||||||
|
|
||||||
String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError());
|
String reversedStopOnErrCmd = getStopOnErrCmd(!isStopOnError());
|
||||||
String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
|
String reversedParallelBuildCmd = !isParallelBuildOn() ? getParallelizationCmd(parallelNum) : EMPTY_STRING;
|
||||||
|
|
||||||
args = removeCmd(args, reversedStopOnErrCmd);
|
args = removeCmd(args, reversedStopOnErrCmd);
|
||||||
args = removeCmd(args, reversedParallelBuildCmd);
|
args = removeCmd(args, reversedParallelBuildCmd);
|
||||||
|
|
||||||
args = addCmd(args, stopOnErrCmd);
|
args = addCmd(args, stopOnErrCmd);
|
||||||
args = addCmd(args, parallelCmd);
|
args = addCmd(args, parallelCmd);
|
||||||
|
}
|
||||||
|
|
||||||
return args != null ? args.trim() : null;
|
return args != null ? args.trim() : null;
|
||||||
}
|
}
|
||||||
|
@ -1877,6 +1879,16 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
|
||||||
&& superClass != null);
|
&& superClass != null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDefaultBuildCmdOnly() {
|
||||||
|
return isExtensionBuilder || (command == null && superClass != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDefaultBuildArgsOnly() {
|
||||||
|
return isExtensionBuilder || (args == null && superClass != null);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isStopOnError() {
|
public boolean isStopOnError() {
|
||||||
if (stopOnErr == null) {
|
if (stopOnErr == null) {
|
||||||
|
@ -1936,6 +1948,28 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUseDefaultBuildCmdOnly(boolean on) throws CoreException {
|
||||||
|
if (!isExtensionBuilder && superClass != null) {
|
||||||
|
if (on) {
|
||||||
|
command = null;
|
||||||
|
} else {
|
||||||
|
command = getCommand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setUseDefaultBuildArgsOnly(boolean on) throws CoreException {
|
||||||
|
if (!isExtensionBuilder && superClass != null) {
|
||||||
|
if (on) {
|
||||||
|
args = null;
|
||||||
|
} else {
|
||||||
|
args = EMPTY_STRING;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String getAutoBuildTargetAttribute() {
|
public String getAutoBuildTargetAttribute() {
|
||||||
if (autoBuildTarget == null) {
|
if (autoBuildTarget == null) {
|
||||||
if (superClass != null)
|
if (superClass != null)
|
||||||
|
|
|
@ -83,12 +83,41 @@ public interface IMakeCommonBuildInfo {
|
||||||
*/
|
*/
|
||||||
void setParallelBuildOn(boolean on) throws CoreException;
|
void setParallelBuildOn(boolean on) throws CoreException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use the {@link #isDefaultBuildCmdOnly()} and {@link #isDefaultBuildArgsOnly()}
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
boolean isDefaultBuildCmd();
|
boolean isDefaultBuildCmd();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 9.3
|
||||||
|
*/
|
||||||
|
boolean isDefaultBuildCmdOnly();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 9.3
|
||||||
|
*/
|
||||||
|
boolean isDefaultBuildArgsOnly();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use the {@link #setUseDefaultBuildCmdOnly(boolean)} and {@link #setUseDefaultBuildArgsOnly(boolean)}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
void setUseDefaultBuildCmd(boolean on) throws CoreException;
|
void setUseDefaultBuildCmd(boolean on) throws CoreException;
|
||||||
|
|
||||||
IPath getBuildCommand();
|
IPath getBuildCommand();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 9.3
|
||||||
|
*/
|
||||||
|
void setUseDefaultBuildCmdOnly(boolean on) throws CoreException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 9.3
|
||||||
|
*/
|
||||||
|
void setUseDefaultBuildArgsOnly(boolean on) throws CoreException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated - use setBuildString(BUILD_COMMAND...)
|
* @deprecated - use setBuildString(BUILD_COMMAND...)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.ui; singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.ui; singleton:=true
|
||||||
Bundle-Version: 9.3.0.qualifier
|
Bundle-Version: 9.3.100.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin
|
Bundle-Activator: org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
|
@ -23,6 +23,9 @@ public class Messages extends NLS {
|
||||||
public static String ArtifactTab_1;
|
public static String ArtifactTab_1;
|
||||||
public static String ArtifactTab_2;
|
public static String ArtifactTab_2;
|
||||||
public static String ArtifactTab_3;
|
public static String ArtifactTab_3;
|
||||||
|
public static String BuildBehaviourTab_Build_arguments;
|
||||||
|
public static String BuildBehaviourTab_Use_custom_build_arguments;
|
||||||
|
public static String BuildBehaviourTab_Use_standard_build_arguments;
|
||||||
public static String BuilderSettingsTab_0;
|
public static String BuilderSettingsTab_0;
|
||||||
public static String BuilderSettingsTab_1;
|
public static String BuilderSettingsTab_1;
|
||||||
public static String BuilderSettingsTab_10;
|
public static String BuilderSettingsTab_10;
|
||||||
|
@ -47,6 +50,7 @@ public class Messages extends NLS {
|
||||||
public static String BuilderSettingsTab_7;
|
public static String BuilderSettingsTab_7;
|
||||||
public static String BuilderSettingsTab_8;
|
public static String BuilderSettingsTab_8;
|
||||||
public static String BuilderSettingsTab_9;
|
public static String BuilderSettingsTab_9;
|
||||||
|
public static String BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab;
|
||||||
public static String BuildOptionSettingsUI_0;
|
public static String BuildOptionSettingsUI_0;
|
||||||
public static String BuildPropertyPage_error_Unknown_tree_element;
|
public static String BuildPropertyPage_error_Unknown_tree_element;
|
||||||
public static String BuildStepsTab_0;
|
public static String BuildStepsTab_0;
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
# Roberto Oliveira - Removed an unused message
|
# Roberto Oliveira - Removed an unused message
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
BuildBehaviourTab_Use_custom_build_arguments=Use custom build arguments
|
||||||
|
BuildBehaviourTab_Use_standard_build_arguments=Use standard build arguments
|
||||||
|
BuildBehaviourTab_Build_arguments=Build arguments:\u0020
|
||||||
BuilderSettingsTab_0=Builder
|
BuilderSettingsTab_0=Builder
|
||||||
BuilderSettingsTab_1=Builder &type:
|
BuilderSettingsTab_1=Builder &type:
|
||||||
BuilderSettingsTab_2=External builder
|
BuilderSettingsTab_2=External builder
|
||||||
|
@ -38,6 +41,7 @@ BuilderSettingsTab_19=Build (Incremental build)
|
||||||
BuilderSettingsTab_20=Clean
|
BuilderSettingsTab_20=Clean
|
||||||
BuilderSettingsTab_21=Build location
|
BuilderSettingsTab_21=Build location
|
||||||
BuilderSettingsTab_22=Build &directory:
|
BuilderSettingsTab_22=Build &directory:
|
||||||
|
BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab=Configure build arguments in the Behavior tab.
|
||||||
BuildStepsTab_0=Command:
|
BuildStepsTab_0=Command:
|
||||||
BuildStepsTab_1=Description:
|
BuildStepsTab_1=Description:
|
||||||
BuildStepsTab_2=Pre-build steps
|
BuildStepsTab_2=Pre-build steps
|
||||||
|
|
|
@ -58,8 +58,12 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
private static final int SPINNER_MAX_VALUE = 10000;
|
private static final int SPINNER_MAX_VALUE = 10000;
|
||||||
private static final int SPINNER_MIN_VALUE = 2;
|
private static final int SPINNER_MIN_VALUE = 2;
|
||||||
|
|
||||||
private static final int TRI_STATES_SIZE = 4;
|
private static final int TRI_STATES_SIZE = 7;
|
||||||
// Widgets
|
// Widgets
|
||||||
|
private Button r_useStandardBuildArguments;
|
||||||
|
private Button r_useCustomBuildArguments;
|
||||||
|
private Text t_buildArguments;
|
||||||
|
|
||||||
//3
|
//3
|
||||||
private Button b_stopOnError; // 3
|
private Button b_stopOnError; // 3
|
||||||
private Button b_parallel; // 3
|
private Button b_parallel; // 3
|
||||||
|
@ -69,6 +73,8 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
private Button b_parallelUnlimited;
|
private Button b_parallelUnlimited;
|
||||||
private Spinner s_parallelNumber;
|
private Spinner s_parallelNumber;
|
||||||
|
|
||||||
|
private Group grp_buildSettings;
|
||||||
|
|
||||||
private Label title2;
|
private Label title2;
|
||||||
private Button b_autoBuild; //3
|
private Button b_autoBuild; //3
|
||||||
private Text t_autoBuild;
|
private Text t_autoBuild;
|
||||||
|
@ -89,37 +95,35 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
usercomp.setLayout(new GridLayout(1, false));
|
usercomp.setLayout(new GridLayout(1, false));
|
||||||
|
|
||||||
// Build setting group
|
// Build setting group
|
||||||
Group g3 = setupGroup(usercomp, Messages.BuilderSettingsTab_9, 2, GridData.FILL_HORIZONTAL);
|
grp_buildSettings = setupGroup(usercomp, Messages.BuilderSettingsTab_9, 2, GridData.FILL_HORIZONTAL);
|
||||||
GridLayout gl = new GridLayout(2, true);
|
GridLayout gl = new GridLayout(2, true);
|
||||||
gl.verticalSpacing = 0;
|
gl.verticalSpacing = 0;
|
||||||
gl.marginWidth = 0;
|
gl.marginWidth = 0;
|
||||||
g3.setLayout(gl);
|
grp_buildSettings.setLayout(gl);
|
||||||
|
|
||||||
Composite c1 = new Composite(g3, SWT.NONE);
|
r_useStandardBuildArguments = setupRadio(grp_buildSettings,
|
||||||
|
Messages.BuildBehaviourTab_Use_standard_build_arguments, 3, GridData.BEGINNING);
|
||||||
|
|
||||||
|
Composite c1 = new Composite(grp_buildSettings, SWT.NONE);
|
||||||
setupControl(c1, 1, GridData.FILL_BOTH);
|
setupControl(c1, 1, GridData.FILL_BOTH);
|
||||||
GridData gd = (GridData) c1.getLayoutData();
|
GridData gd = (GridData) c1.getLayoutData();
|
||||||
gd.verticalSpan = 2;
|
gd.verticalSpan = 2;
|
||||||
gd.verticalIndent = 0;
|
gd.verticalIndent = 0;
|
||||||
c1.setLayoutData(gd);
|
c1.setLayoutData(gd);
|
||||||
gl = new GridLayout(1, false);
|
gl = new GridLayout(1, false);
|
||||||
gl.verticalSpacing = 0;
|
|
||||||
gl.marginWidth = 0;
|
|
||||||
gl.marginHeight = 0;
|
|
||||||
c1.setLayout(gl);
|
c1.setLayout(gl);
|
||||||
|
|
||||||
b_stopOnError = setupCheck(c1, Messages.BuilderSettingsTab_10, 1, GridData.BEGINNING);
|
b_stopOnError = setupCheck(c1, Messages.BuilderSettingsTab_10, 1, GridData.BEGINNING);
|
||||||
|
((GridData) (b_stopOnError.getLayoutData())).horizontalIndent = 15;
|
||||||
|
|
||||||
Composite c2 = new Composite(g3, SWT.NONE);
|
Composite c2 = new Composite(grp_buildSettings, SWT.NONE);
|
||||||
setupControl(c2, 1, GridData.FILL_BOTH);
|
setupControl(c2, 1, GridData.FILL_BOTH);
|
||||||
gl = new GridLayout(1, false);
|
gl = new GridLayout(1, false);
|
||||||
gl.verticalSpacing = 0;
|
|
||||||
gl.marginWidth = 0;
|
|
||||||
gl.marginHeight = 0;
|
|
||||||
c2.setLayout(gl);
|
c2.setLayout(gl);
|
||||||
|
|
||||||
b_parallel = setupCheck(c2, Messages.BuilderSettingsTab_EnableParallelBuild, 1, GridData.BEGINNING);
|
b_parallel = setupCheck(c2, Messages.BuilderSettingsTab_EnableParallelBuild, 1, GridData.BEGINNING);
|
||||||
|
|
||||||
Composite c3 = new Composite(g3, SWT.NONE);
|
Composite c3 = new Composite(grp_buildSettings, SWT.NONE);
|
||||||
setupControl(c3, 1, GridData.FILL_BOTH);
|
setupControl(c3, 1, GridData.FILL_BOTH);
|
||||||
gl = new GridLayout(2, false);
|
gl = new GridLayout(2, false);
|
||||||
gl.verticalSpacing = 0;
|
gl.verticalSpacing = 0;
|
||||||
|
@ -191,6 +195,24 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
r_useCustomBuildArguments = setupRadio(grp_buildSettings, Messages.BuildBehaviourTab_Use_custom_build_arguments,
|
||||||
|
3, GridData.BEGINNING);
|
||||||
|
Composite c0 = setupComposite(grp_buildSettings, 3, GridData.FILL_BOTH);
|
||||||
|
setupControl(c0, 2, GridData.FILL_BOTH);
|
||||||
|
setupLabel(c0, Messages.BuildBehaviourTab_Build_arguments, 1, GridData.BEGINNING);
|
||||||
|
t_buildArguments = setupBlock(c0, r_useCustomBuildArguments);
|
||||||
|
t_buildArguments.addModifyListener(new ModifyListener() {
|
||||||
|
@Override
|
||||||
|
public void modifyText(ModifyEvent e) {
|
||||||
|
if (!canModify)
|
||||||
|
return;
|
||||||
|
String buildArgs = t_buildArguments.getText().trim();
|
||||||
|
if (!buildArgs.equals(bldr.getArguments())) {
|
||||||
|
setArguments(buildArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Workbench behaviour group
|
// Workbench behaviour group
|
||||||
AccessibleListener makeTargetLabelAccessibleListener = new AccessibleAdapter() {
|
AccessibleListener makeTargetLabelAccessibleListener = new AccessibleAdapter() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -240,19 +262,28 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
* @return:
|
* @return:
|
||||||
* Mode 0:
|
* Mode 0:
|
||||||
* 0: bld.isManagedBuildOn()
|
* 0: bld.isManagedBuildOn()
|
||||||
* 1: bld.isDefaultBuildCmd()
|
* 1: N/A
|
||||||
* 2: bld.canKeepEnvironmentVariablesInBuildfile()
|
* 2: bld.canKeepEnvironmentVariablesInBuildfile()
|
||||||
* 3: bld.keepEnvironmentVariablesInBuildfile()
|
* 3: bld.keepEnvironmentVariablesInBuildfile()
|
||||||
|
* 4: bld.isDefaultBuildCmdOnly()
|
||||||
|
* 5: bld.isDefaultBuildArgsOnly()
|
||||||
|
* 6: !bld.isDefaultBuildArgsOnly()
|
||||||
* Mode 1:
|
* Mode 1:
|
||||||
* 0: isStopOnError
|
* 0: isStopOnError
|
||||||
* 1: supportsStopOnError(true)
|
* 1: supportsStopOnError(true)
|
||||||
* 2: bld.supportsStopOnError(false)
|
* 2: bld.supportsStopOnError(false)
|
||||||
* 3: N/A
|
* 3: N/A
|
||||||
|
* 4: N/A
|
||||||
|
* 5: bld.isDefaultBuildArgsOnly()
|
||||||
|
* 6: !bld.isDefaultBuildArgsOnly()
|
||||||
* Mode 2:
|
* Mode 2:
|
||||||
* 0: b.isAutoBuildEnable()
|
* 0: b.isAutoBuildEnable()
|
||||||
* 1: b.isIncrementalBuildEnabled()
|
* 1: b.isIncrementalBuildEnabled()
|
||||||
* 2: b.isCleanBuildEnabled()
|
* 2: b.isCleanBuildEnabled()
|
||||||
* 3: N/A
|
* 3: N/A
|
||||||
|
* 4: N/A
|
||||||
|
* 5: N/A
|
||||||
|
* 6: N/A
|
||||||
*/
|
*/
|
||||||
static int[] calc3states(ICPropertyProvider p, IConfiguration mcfg, int mode) {
|
static int[] calc3states(ICPropertyProvider p, IConfiguration mcfg, int mode) {
|
||||||
if (p.isMultiCfg() && mcfg instanceof ICMultiItemsHolder) {
|
if (p.isMultiCfg() && mcfg instanceof ICMultiItemsHolder) {
|
||||||
|
@ -264,17 +295,18 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
int[] res = new int[TRI_STATES_SIZE];
|
int[] res = new int[TRI_STATES_SIZE];
|
||||||
boolean[] b = new boolean[TRI_STATES_SIZE];
|
boolean[] b = new boolean[TRI_STATES_SIZE];
|
||||||
b[0] = m0 ? bldr0.isManagedBuildOn() : (m1 ? bldr0.isStopOnError() : bldr0.isAutoBuildEnable());
|
b[0] = m0 ? bldr0.isManagedBuildOn() : (m1 ? bldr0.isStopOnError() : bldr0.isAutoBuildEnable());
|
||||||
b[1] = m0 ? bldr0.isDefaultBuildCmd()
|
b[1] = m0 ? true : (m1 ? bldr0.supportsStopOnError(true) : bldr0.isIncrementalBuildEnabled());
|
||||||
: (m1 ? bldr0.supportsStopOnError(true) : bldr0.isIncrementalBuildEnabled());
|
|
||||||
b[2] = m0 ? bldr0.canKeepEnvironmentVariablesInBuildfile()
|
b[2] = m0 ? bldr0.canKeepEnvironmentVariablesInBuildfile()
|
||||||
: (m1 ? bldr0.supportsStopOnError(false) : bldr0.isCleanBuildEnabled());
|
: (m1 ? bldr0.supportsStopOnError(false) : bldr0.isCleanBuildEnabled());
|
||||||
b[3] = m0 ? bldr0.keepEnvironmentVariablesInBuildfile() : false;
|
b[3] = m0 ? bldr0.keepEnvironmentVariablesInBuildfile() : false;
|
||||||
|
b[4] = m0 ? bldr0.isDefaultBuildCmdOnly() : false;
|
||||||
|
b[5] = (m0 || m1) ? bldr0.isDefaultBuildArgsOnly() : false;
|
||||||
|
b[6] = (m0 || m1) ? !bldr0.isDefaultBuildArgsOnly() : false;
|
||||||
for (int i = 1; i < cfgs.length; i++) {
|
for (int i = 1; i < cfgs.length; i++) {
|
||||||
IBuilder bldr = cfgs[i].getBuilder();
|
IBuilder bldr = cfgs[i].getBuilder();
|
||||||
if (b[0] != (m0 ? bldr.isManagedBuildOn() : (m1 ? bldr.isStopOnError() : bldr.isAutoBuildEnable())))
|
if (b[0] != (m0 ? bldr.isManagedBuildOn() : (m1 ? bldr.isStopOnError() : bldr.isAutoBuildEnable())))
|
||||||
res[0] = TRI_UNKNOWN;
|
res[0] = TRI_UNKNOWN;
|
||||||
if (b[1] != (m0 ? bldr.isDefaultBuildCmd()
|
if (b[1] != (m0 ? true : (m1 ? bldr.supportsStopOnError(true) : bldr.isIncrementalBuildEnabled())))
|
||||||
: (m1 ? bldr.supportsStopOnError(true) : bldr.isIncrementalBuildEnabled())))
|
|
||||||
res[1] = TRI_UNKNOWN;
|
res[1] = TRI_UNKNOWN;
|
||||||
if (b[2] != (m0 ? bldr.canKeepEnvironmentVariablesInBuildfile()
|
if (b[2] != (m0 ? bldr.canKeepEnvironmentVariablesInBuildfile()
|
||||||
: (m1 ? bldr.supportsStopOnError(false) : bldr.isCleanBuildEnabled())))
|
: (m1 ? bldr.supportsStopOnError(false) : bldr.isCleanBuildEnabled())))
|
||||||
|
@ -282,6 +314,15 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
if (b[3] != (m0 ? bldr.keepEnvironmentVariablesInBuildfile() : false)) {
|
if (b[3] != (m0 ? bldr.keepEnvironmentVariablesInBuildfile() : false)) {
|
||||||
res[3] = TRI_UNKNOWN;
|
res[3] = TRI_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
if (b[4] != (m0 ? bldr.isDefaultBuildCmdOnly() : false)) {
|
||||||
|
res[4] = TRI_UNKNOWN;
|
||||||
|
}
|
||||||
|
if (b[5] != ((m0 || m1) ? bldr.isDefaultBuildArgsOnly() : false)) {
|
||||||
|
res[5] = TRI_UNKNOWN;
|
||||||
|
}
|
||||||
|
if (b[6] != ((m0 || m1) ? !bldr.isDefaultBuildArgsOnly() : false)) {
|
||||||
|
res[6] = TRI_UNKNOWN;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < TRI_STATES_SIZE; i++) {
|
for (int i = 0; i < TRI_STATES_SIZE; i++) {
|
||||||
if (res[i] != TRI_UNKNOWN)
|
if (res[i] != TRI_UNKNOWN)
|
||||||
|
@ -301,17 +342,45 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
bldr = (Builder) icfg.getEditableBuilder();
|
bldr = (Builder) icfg.getEditableBuilder();
|
||||||
canModify = false;
|
canModify = false;
|
||||||
int[] extStates = calc3states(page, icfg, 1);
|
int[] extStates = calc3states(page, icfg, 1);
|
||||||
|
boolean external = !isInternalBuilderEnabled();
|
||||||
|
|
||||||
// Stop on error
|
// use standard build args
|
||||||
if (extStates != null) {
|
if (extStates == null) { // no extended states available
|
||||||
setTriSelection(b_stopOnError, extStates[0]);
|
setTriSelection(r_useStandardBuildArguments, bldr.isDefaultBuildArgsOnly());
|
||||||
b_stopOnError.setEnabled(extStates[1] == TRI_YES && extStates[2] == TRI_YES);
|
setTriSelection(r_useCustomBuildArguments, !bldr.isDefaultBuildArgsOnly());
|
||||||
} else {
|
} else {
|
||||||
setTriSelection(b_stopOnError, bldr.isStopOnError());
|
int standardTri = extStates[5];
|
||||||
b_stopOnError.setEnabled(bldr.supportsStopOnError(true) && bldr.supportsStopOnError(false));
|
int customTri = extStates[6];
|
||||||
|
if (standardTri == TRI_UNKNOWN || customTri == TRI_UNKNOWN) {
|
||||||
|
setTriSelection(r_useStandardBuildArguments, TRI_UNKNOWN);
|
||||||
|
setTriSelection(r_useCustomBuildArguments, TRI_UNKNOWN);
|
||||||
|
} else {
|
||||||
|
setTriSelection(r_useStandardBuildArguments, standardTri);
|
||||||
|
setTriSelection(r_useCustomBuildArguments, customTri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t_buildArguments.setText(nonNull(icfg.getBuildArguments()));
|
||||||
|
r_useStandardBuildArguments.setEnabled(external);
|
||||||
|
r_useCustomBuildArguments.setEnabled(external);
|
||||||
|
if (external) {
|
||||||
|
checkPressed(r_useCustomBuildArguments, false); // do not update
|
||||||
}
|
}
|
||||||
|
|
||||||
updateParallelBlock();
|
// Stop on error
|
||||||
|
boolean defaultBuildArguments = bldr.isDefaultBuildArgsOnly();
|
||||||
|
if (defaultBuildArguments) {
|
||||||
|
if (extStates != null) {
|
||||||
|
setTriSelection(b_stopOnError, extStates[0]);
|
||||||
|
b_stopOnError.setEnabled(extStates[1] == TRI_YES && extStates[2] == TRI_YES);
|
||||||
|
} else {
|
||||||
|
setTriSelection(b_stopOnError, bldr.isStopOnError());
|
||||||
|
b_stopOnError.setEnabled(bldr.supportsStopOnError(true) && bldr.supportsStopOnError(false));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
b_stopOnError.setEnabled(defaultBuildArguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateParallelBlock(defaultBuildArguments);
|
||||||
|
|
||||||
// Build commands
|
// Build commands
|
||||||
extStates = calc3states(page, icfg, 2);
|
extStates = calc3states(page, icfg, 2);
|
||||||
|
@ -337,7 +406,6 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
t_cmdClean.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR));
|
t_cmdClean.setText(bldr.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR));
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean external = !isInternalBuilderEnabled();
|
|
||||||
title2.setVisible(external);
|
title2.setVisible(external);
|
||||||
t_autoBuild.setVisible(external);
|
t_autoBuild.setVisible(external);
|
||||||
((Control) t_autoBuild.getData()).setVisible(external);
|
((Control) t_autoBuild.getData()).setVisible(external);
|
||||||
|
@ -354,7 +422,7 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
canModify = true;
|
canModify = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateParallelBlock() {
|
private void updateParallelBlock(boolean defaultBuildArguments) {
|
||||||
// note: for multi-config selection bldr is from Active cfg
|
// note: for multi-config selection bldr is from Active cfg
|
||||||
|
|
||||||
boolean isParallelSupported = bldr.supportsParallelBuild();
|
boolean isParallelSupported = bldr.supportsParallelBuild();
|
||||||
|
@ -399,30 +467,42 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
s_parallelNumber.setVisible(isParallelSupported);
|
s_parallelNumber.setVisible(isParallelSupported);
|
||||||
|
|
||||||
if (isParallelSupported) {
|
if (isParallelSupported) {
|
||||||
setTriSelection(b_parallel, triSelection);
|
if (defaultBuildArguments) {
|
||||||
boolean isParallelSelected = b_parallel.getSelection();
|
b_parallel.setEnabled(true);
|
||||||
|
s_parallelNumber.setEnabled(true);
|
||||||
|
|
||||||
b_parallelOptimal
|
setTriSelection(b_parallel, triSelection);
|
||||||
.setText(MessageFormat.format(Messages.BuilderSettingsTab_UseOptimalJobs, optimalParallelNumber));
|
boolean isParallelSelected = b_parallel.getSelection();
|
||||||
b_parallelOptimal.setEnabled(isParallelSelected);
|
|
||||||
b_parallelSpecific.setEnabled(isParallelSelected);
|
|
||||||
b_parallelUnlimited.setEnabled(isParallelSelected);
|
|
||||||
|
|
||||||
if (isParallelSelected) {
|
b_parallelOptimal.setText(
|
||||||
boolean isOptimal = parallelizationNumInternal <= 0;
|
MessageFormat.format(Messages.BuilderSettingsTab_UseOptimalJobs, optimalParallelNumber));
|
||||||
boolean isUnlimited = parallelizationNumInternal == Builder.UNLIMITED_JOBS;
|
b_parallelOptimal.setEnabled(isParallelSelected);
|
||||||
|
b_parallelSpecific.setEnabled(isParallelSelected);
|
||||||
|
b_parallelUnlimited.setEnabled(isParallelSelected);
|
||||||
|
|
||||||
b_parallelOptimal.setSelection(isOptimal);
|
if (isParallelSelected) {
|
||||||
b_parallelSpecific.setSelection(!isOptimal && !isUnlimited);
|
boolean isOptimal = parallelizationNumInternal <= 0;
|
||||||
b_parallelUnlimited.setSelection(isUnlimited);
|
boolean isUnlimited = parallelizationNumInternal == Builder.UNLIMITED_JOBS;
|
||||||
s_parallelNumber.setEnabled(b_parallelSpecific.getEnabled() && b_parallelSpecific.getSelection());
|
|
||||||
s_parallelNumber.setSelection(s_parallelNumber.isEnabled() ? parallelNumber : optimalParallelNumber);
|
b_parallelOptimal.setSelection(isOptimal);
|
||||||
|
b_parallelSpecific.setSelection(!isOptimal && !isUnlimited);
|
||||||
|
b_parallelUnlimited.setSelection(isUnlimited);
|
||||||
|
s_parallelNumber.setEnabled(b_parallelSpecific.getEnabled() && b_parallelSpecific.getSelection());
|
||||||
|
s_parallelNumber
|
||||||
|
.setSelection(s_parallelNumber.isEnabled() ? parallelNumber : optimalParallelNumber);
|
||||||
|
} else {
|
||||||
|
b_parallelOptimal.setSelection(true);
|
||||||
|
b_parallelSpecific.setSelection(false);
|
||||||
|
b_parallelUnlimited.setSelection(false);
|
||||||
|
s_parallelNumber.setEnabled(false);
|
||||||
|
s_parallelNumber.setSelection(optimalParallelNumber);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
b_parallelOptimal.setSelection(true);
|
b_parallel.setEnabled(false);
|
||||||
b_parallelSpecific.setSelection(false);
|
b_parallelOptimal.setEnabled(false);
|
||||||
b_parallelUnlimited.setSelection(false);
|
b_parallelSpecific.setEnabled(false);
|
||||||
|
b_parallelUnlimited.setEnabled(false);
|
||||||
s_parallelNumber.setEnabled(false);
|
s_parallelNumber.setEnabled(false);
|
||||||
s_parallelNumber.setSelection(optimalParallelNumber);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -527,12 +607,16 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
|
|
||||||
static void copyBuilders(IBuilder b1, IBuilder b2) {
|
static void copyBuilders(IBuilder b1, IBuilder b2) {
|
||||||
try {
|
try {
|
||||||
b2.setUseDefaultBuildCmd(b1.isDefaultBuildCmd());
|
b2.setUseDefaultBuildCmdOnly(b1.isDefaultBuildCmdOnly());
|
||||||
if (!b1.isDefaultBuildCmd()) {
|
b2.setUseDefaultBuildArgsOnly(b1.isDefaultBuildArgsOnly());
|
||||||
|
if (!b1.isDefaultBuildCmdOnly()) {
|
||||||
b2.setCommand(b1.getCommand());
|
b2.setCommand(b1.getCommand());
|
||||||
b2.setArguments(b1.getArguments());
|
|
||||||
} else {
|
} else {
|
||||||
b2.setCommand(null);
|
b2.setCommand(null);
|
||||||
|
}
|
||||||
|
if (!b1.isDefaultBuildArgsOnly()) {
|
||||||
|
b2.setArguments(b1.getArguments());
|
||||||
|
} else {
|
||||||
b2.setArguments(null);
|
b2.setArguments(null);
|
||||||
}
|
}
|
||||||
b2.setStopOnError(b1.isStopOnError());
|
b2.setStopOnError(b1.isStopOnError());
|
||||||
|
@ -582,6 +666,18 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
updateData(getResDesc());
|
updateData(getResDesc());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setArguments(String makeArgs) {
|
||||||
|
if (icfg instanceof IMultiConfiguration) {
|
||||||
|
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
|
||||||
|
for (int i = 0; i < cfs.length; i++) {
|
||||||
|
IBuilder b = cfs[i].getEditableBuilder();
|
||||||
|
b.setArguments(makeArgs);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
icfg.getEditableBuilder().setArguments(makeArgs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setParallelDef(boolean def) {
|
private void setParallelDef(boolean def) {
|
||||||
if (icfg instanceof Configuration)
|
if (icfg instanceof Configuration)
|
||||||
((Configuration) icfg).setParallelDef(def);
|
((Configuration) icfg).setParallelDef(def);
|
||||||
|
@ -626,7 +722,11 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
|
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
|
||||||
for (int i = 0; i < cfs.length; i++) {
|
for (int i = 0; i < cfs.length; i++) {
|
||||||
IBuilder bld = cfs[i].getEditableBuilder();
|
IBuilder bld = cfs[i].getEditableBuilder();
|
||||||
if (b == b_autoBuild) {
|
if (b == r_useStandardBuildArguments) {
|
||||||
|
bld.setUseDefaultBuildArgsOnly(val);
|
||||||
|
} else if (b == r_useCustomBuildArguments) {
|
||||||
|
bld.setUseDefaultBuildArgsOnly(!val);
|
||||||
|
} else if (b == b_autoBuild) {
|
||||||
bld.setAutoBuildEnable(val);
|
bld.setAutoBuildEnable(val);
|
||||||
} else if (b == b_cmdBuild) {
|
} else if (b == b_cmdBuild) {
|
||||||
bld.setIncrementalBuildEnable(val);
|
bld.setIncrementalBuildEnable(val);
|
||||||
|
@ -639,7 +739,11 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (b == b_autoBuild) {
|
if (b == r_useStandardBuildArguments) {
|
||||||
|
bldr.setUseDefaultBuildArgsOnly(val);
|
||||||
|
} else if (b == r_useCustomBuildArguments) {
|
||||||
|
bldr.setUseDefaultBuildArgsOnly(!val);
|
||||||
|
} else if (b == b_autoBuild) {
|
||||||
bldr.setAutoBuildEnable(val);
|
bldr.setAutoBuildEnable(val);
|
||||||
} else if (b == b_cmdBuild) {
|
} else if (b == b_cmdBuild) {
|
||||||
bldr.setIncrementalBuildEnable(val);
|
bldr.setIncrementalBuildEnable(val);
|
||||||
|
@ -655,4 +759,14 @@ public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
|
||||||
ManagedBuilderUIPlugin.log(e);
|
ManagedBuilderUIPlugin.log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return an empty string is parameter is null
|
||||||
|
*/
|
||||||
|
private String nonNull(String maybeNullString) {
|
||||||
|
if (maybeNullString == null) {
|
||||||
|
return EMPTY_STR;
|
||||||
|
}
|
||||||
|
return maybeNullString;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ import org.eclipse.swt.widgets.Widget;
|
||||||
public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
// Widgets
|
// Widgets
|
||||||
//1
|
//1
|
||||||
private Button b_useDefault;
|
private Button b_useDefaultBuildCommand;
|
||||||
private Combo c_builderType;
|
private Combo c_builderType;
|
||||||
private Text t_buildCmd;
|
private Text t_buildCmd;
|
||||||
//2
|
//2
|
||||||
|
@ -85,25 +85,25 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
b_useDefault = setupCheck(g1, Messages.BuilderSettingsTab_4, 3, GridData.BEGINNING);
|
b_useDefaultBuildCommand = setupCheck(g1, Messages.BuilderSettingsTab_4, 3, GridData.BEGINNING);
|
||||||
|
|
||||||
setupLabel(g1, Messages.BuilderSettingsTab_5, 1, GridData.BEGINNING);
|
setupLabel(g1, Messages.BuilderSettingsTab_5, 1, GridData.BEGINNING);
|
||||||
t_buildCmd = setupBlock(g1, b_useDefault);
|
t_buildCmd = setupBlock(g1, b_useDefaultBuildCommand);
|
||||||
t_buildCmd.addModifyListener(new ModifyListener() {
|
t_buildCmd.addModifyListener(new ModifyListener() {
|
||||||
@Override
|
@Override
|
||||||
public void modifyText(ModifyEvent e) {
|
public void modifyText(ModifyEvent e) {
|
||||||
if (!canModify)
|
if (!canModify)
|
||||||
return;
|
return;
|
||||||
String fullCommand = t_buildCmd.getText().trim();
|
String buildCommand = t_buildCmd.getText().trim();
|
||||||
String buildCommand = parseMakeCommand(fullCommand);
|
if (!buildCommand.equals(bldr.getCommand())) {
|
||||||
String buildArgs = fullCommand.substring(buildCommand.length()).trim();
|
|
||||||
if (!buildCommand.equals(bldr.getCommand()) || !buildArgs.equals(bldr.getArguments())) {
|
|
||||||
setCommand(buildCommand);
|
setCommand(buildCommand);
|
||||||
setArguments(buildArgs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
setupLabel(g1, Messages.BuilderSettingsTab_Configure_Build_Arguments_In_the_Behavior_tab, 2,
|
||||||
|
GridData.BEGINNING);
|
||||||
|
|
||||||
Group g2 = setupGroup(usercomp, Messages.BuilderSettingsTab_6, 2, GridData.FILL_HORIZONTAL);
|
Group g2 = setupGroup(usercomp, Messages.BuilderSettingsTab_6, 2, GridData.FILL_HORIZONTAL);
|
||||||
((GridLayout) (g2.getLayout())).makeColumnsEqualWidth = true;
|
((GridLayout) (g2.getLayout())).makeColumnsEqualWidth = true;
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
b_genMakefileAuto.setEnabled(icfg.supportsBuild(true));
|
b_genMakefileAuto.setEnabled(icfg.supportsBuild(true));
|
||||||
if (extStates == null) { // no extended states available
|
if (extStates == null) { // no extended states available
|
||||||
BuildBehaviourTab.setTriSelection(b_genMakefileAuto, bldr.isManagedBuildOn());
|
BuildBehaviourTab.setTriSelection(b_genMakefileAuto, bldr.isManagedBuildOn());
|
||||||
BuildBehaviourTab.setTriSelection(b_useDefault, bldr.isDefaultBuildCmd());
|
BuildBehaviourTab.setTriSelection(b_useDefaultBuildCommand, bldr.isDefaultBuildCmdOnly());
|
||||||
// b_expandVars.setGrayed(false);
|
// b_expandVars.setGrayed(false);
|
||||||
if (!bldr.canKeepEnvironmentVariablesInBuildfile())
|
if (!bldr.canKeepEnvironmentVariablesInBuildfile())
|
||||||
b_expandVars.setEnabled(false);
|
b_expandVars.setEnabled(false);
|
||||||
|
@ -161,7 +161,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BuildBehaviourTab.setTriSelection(b_genMakefileAuto, extStates[0]);
|
BuildBehaviourTab.setTriSelection(b_genMakefileAuto, extStates[0]);
|
||||||
BuildBehaviourTab.setTriSelection(b_useDefault, extStates[1]);
|
BuildBehaviourTab.setTriSelection(b_useDefaultBuildCommand, extStates[4]);
|
||||||
if (extStates[2] != BuildBehaviourTab.TRI_YES)
|
if (extStates[2] != BuildBehaviourTab.TRI_YES)
|
||||||
b_expandVars.setEnabled(false);
|
b_expandVars.setEnabled(false);
|
||||||
else {
|
else {
|
||||||
|
@ -172,7 +172,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
c_builderType.select(isInternalBuilderEnabled() ? 1 : 0);
|
c_builderType.select(isInternalBuilderEnabled() ? 1 : 0);
|
||||||
c_builderType.setEnabled(canEnableInternalBuilder(true) && canEnableInternalBuilder(false));
|
c_builderType.setEnabled(canEnableInternalBuilder(true) && canEnableInternalBuilder(false));
|
||||||
|
|
||||||
t_buildCmd.setText(getMakeCommand());
|
t_buildCmd.setText(nonNull(icfg.getBuildCommand()));
|
||||||
|
|
||||||
if (page.isMultiCfg()) {
|
if (page.isMultiCfg()) {
|
||||||
group_dir.setVisible(false);
|
group_dir.setVisible(false);
|
||||||
|
@ -187,16 +187,16 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
boolean external = (c_builderType.getSelectionIndex() == 0);
|
boolean external = (c_builderType.getSelectionIndex() == 0);
|
||||||
|
|
||||||
b_useDefault.setEnabled(external);
|
b_useDefaultBuildCommand.setEnabled(external);
|
||||||
t_buildCmd.setEnabled(external);
|
t_buildCmd.setEnabled(external);
|
||||||
((Control) t_buildCmd.getData()).setEnabled(external & !b_useDefault.getSelection());
|
((Control) t_buildCmd.getData()).setEnabled(external & !b_useDefaultBuildCommand.getSelection());
|
||||||
|
|
||||||
b_genMakefileAuto.setEnabled(external && icfg.supportsBuild(true));
|
b_genMakefileAuto.setEnabled(external && icfg.supportsBuild(true));
|
||||||
if (b_expandVars.getEnabled())
|
if (b_expandVars.getEnabled())
|
||||||
b_expandVars.setEnabled(external && b_genMakefileAuto.getSelection());
|
b_expandVars.setEnabled(external && b_genMakefileAuto.getSelection());
|
||||||
|
|
||||||
if (external) { // just set relatet text widget state,
|
if (external) { // just set relatet text widget state,
|
||||||
checkPressed(b_useDefault, false); // do not update
|
checkPressed(b_useDefaultBuildCommand, false); // do not update
|
||||||
}
|
}
|
||||||
canModify = true;
|
canModify = true;
|
||||||
}
|
}
|
||||||
|
@ -278,7 +278,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
|
|
||||||
if (b.getData() instanceof Text) {
|
if (b.getData() instanceof Text) {
|
||||||
Text t = (Text) b.getData();
|
Text t = (Text) b.getData();
|
||||||
if (b == b_useDefault) {
|
if (b == b_useDefaultBuildCommand) {
|
||||||
val = !val;
|
val = !val;
|
||||||
}
|
}
|
||||||
t.setEnabled(val);
|
t.setEnabled(val);
|
||||||
|
@ -292,7 +292,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
if (!needUpdate)
|
if (!needUpdate)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (b == b_useDefault) {
|
if (b == b_useDefaultBuildCommand) {
|
||||||
setUseDefaultBuildCmd(!val);
|
setUseDefaultBuildCmd(!val);
|
||||||
} else if (b == b_genMakefileAuto) {
|
} else if (b == b_genMakefileAuto) {
|
||||||
setManagedBuild(val);
|
setManagedBuild(val);
|
||||||
|
@ -303,16 +303,13 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return make command
|
* Return an empty string is parameter is null
|
||||||
*/
|
*/
|
||||||
private String getMakeCommand() {
|
private String nonNull(String maybeNullString) {
|
||||||
String makeCommand = icfg.getBuildCommand();
|
if (maybeNullString == null) {
|
||||||
String makeArgs = icfg.getBuildArguments();
|
return EMPTY_STR;
|
||||||
|
|
||||||
if (!makeCommand.isEmpty() && makeArgs != null) {
|
|
||||||
return makeCommand + " " + makeArgs; //$NON-NLS-1$
|
|
||||||
}
|
}
|
||||||
return EMPTY_STR;
|
return maybeNullString;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -332,20 +329,6 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
BuildBehaviourTab.apply(src, dst, page.isMultiCfg());
|
BuildBehaviourTab.apply(src, dst, page.isMultiCfg());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @param string
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private String parseMakeCommand(String rawCommand) {
|
|
||||||
String[] result = rawCommand.split("\\s"); //$NON-NLS-1$
|
|
||||||
if (result != null && result.length > 0)
|
|
||||||
return result[0];
|
|
||||||
else
|
|
||||||
return rawCommand;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// This page can be displayed for project only
|
// This page can be displayed for project only
|
||||||
@Override
|
@Override
|
||||||
public boolean canBeVisible() {
|
public boolean canBeVisible() {
|
||||||
|
@ -400,10 +383,10 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
for (int i = 0; i < cfs.length; i++) {
|
for (int i = 0; i < cfs.length; i++) {
|
||||||
IBuilder b = cfs[i].getEditableBuilder();
|
IBuilder b = cfs[i].getEditableBuilder();
|
||||||
if (b != null)
|
if (b != null)
|
||||||
b.setUseDefaultBuildCmd(val);
|
b.setUseDefaultBuildCmdOnly(val);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
icfg.getEditableBuilder().setUseDefaultBuildCmd(val);
|
icfg.getEditableBuilder().setUseDefaultBuildCmdOnly(val);
|
||||||
}
|
}
|
||||||
} catch (CoreException e) {
|
} catch (CoreException e) {
|
||||||
ManagedBuilderUIPlugin.log(e);
|
ManagedBuilderUIPlugin.log(e);
|
||||||
|
@ -435,18 +418,6 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setArguments(String makeArgs) {
|
|
||||||
if (icfg instanceof IMultiConfiguration) {
|
|
||||||
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
|
|
||||||
for (int i = 0; i < cfs.length; i++) {
|
|
||||||
IBuilder b = cfs[i].getEditableBuilder();
|
|
||||||
b.setArguments(makeArgs);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
icfg.getEditableBuilder().setArguments(makeArgs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setBuildPath(String path) {
|
private void setBuildPath(String path) {
|
||||||
if (icfg instanceof IMultiConfiguration) {
|
if (icfg instanceof IMultiConfiguration) {
|
||||||
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
|
IConfiguration[] cfs = (IConfiguration[]) ((IMultiConfiguration) icfg).getItems();
|
||||||
|
|
|
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||||
Bundle-ManifestVersion: 2
|
Bundle-ManifestVersion: 2
|
||||||
Bundle-Name: %pluginName
|
Bundle-Name: %pluginName
|
||||||
Bundle-SymbolicName: org.eclipse.cdt.ui; singleton:=true
|
Bundle-SymbolicName: org.eclipse.cdt.ui; singleton:=true
|
||||||
Bundle-Version: 7.1.100.qualifier
|
Bundle-Version: 7.2.0.qualifier
|
||||||
Bundle-Activator: org.eclipse.cdt.ui.CUIPlugin
|
Bundle-Activator: org.eclipse.cdt.ui.CUIPlugin
|
||||||
Bundle-Vendor: %providerName
|
Bundle-Vendor: %providerName
|
||||||
Bundle-Localization: plugin
|
Bundle-Localization: plugin
|
||||||
|
|
|
@ -378,6 +378,16 @@ public abstract class AbstractCPropertyTab implements ICPropertyTab {
|
||||||
return g;
|
return g;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 7.2
|
||||||
|
*/
|
||||||
|
protected Composite setupComposite(Composite c, int cols, int mode) {
|
||||||
|
Composite c1 = new Composite(c, SWT.NONE);
|
||||||
|
c1.setLayout(new GridLayout(cols, false));
|
||||||
|
setupControl(c1, 1, mode);
|
||||||
|
return c1;
|
||||||
|
}
|
||||||
|
|
||||||
protected Button setupCheck(Composite c, String name, int span, int mode) {
|
protected Button setupCheck(Composite c, String name, int span, int mode) {
|
||||||
Button b = new Button(c, SWT.CHECK);
|
Button b = new Button(c, SWT.CHECK);
|
||||||
b.setText(name);
|
b.setText(name);
|
||||||
|
@ -392,6 +402,23 @@ public abstract class AbstractCPropertyTab implements ICPropertyTab {
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 7.2
|
||||||
|
*/
|
||||||
|
protected Button setupRadio(Composite c, String name, int span, int mode) {
|
||||||
|
Button b = new Button(c, SWT.RADIO);
|
||||||
|
b.setText(name);
|
||||||
|
setupControl(b, span, mode);
|
||||||
|
b.addSelectionListener(new SelectionAdapter() {
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent event) {
|
||||||
|
((Button) event.widget).setGrayed(false);
|
||||||
|
checkPressed(event);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Selection handler for checkbox created
|
* Selection handler for checkbox created
|
||||||
* by methods "setupCheck()" or "setupTri()"
|
* by methods "setupCheck()" or "setupTri()"
|
||||||
|
|
Loading…
Add table
Reference in a new issue