mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 17:56:01 +02:00
Add UI for user to control build type (#1090)
User can control the value of the CMake built type (CMAKE_BUILD_TYPE), for example Debug or Release via new UI in CMakeBuildTab Added UT for ICMakeProperties.getBuildType() Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-013
This commit is contained in:
parent
47b1978568
commit
e819f8a35c
6 changed files with 177 additions and 8 deletions
|
@ -35,6 +35,7 @@ import org.eclipse.cdt.utils.CommandLineUtil;
|
||||||
import org.eclipse.core.resources.IBuildConfiguration;
|
import org.eclipse.core.resources.IBuildConfiguration;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.resources.IProjectDescription;
|
import org.eclipse.core.resources.IProjectDescription;
|
||||||
|
import org.eclipse.debug.core.ILaunchManager;
|
||||||
import org.eclipse.launchbar.core.target.ILaunchTarget;
|
import org.eclipse.launchbar.core.target.ILaunchTarget;
|
||||||
import org.eclipse.launchbar.core.target.ILaunchTargetManager;
|
import org.eclipse.launchbar.core.target.ILaunchTargetManager;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
@ -91,6 +92,106 @@ public class CMakeBuildConfigurationTests extends BaseTestCase5 {
|
||||||
assertThat(cMakeProperties.getGenerator(), is(CMakeGenerator.WatcomWMake));
|
assertThat(cMakeProperties.getGenerator(), is(CMakeGenerator.WatcomWMake));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test for IDE_82683_REQ_013 part of #1000
|
||||||
|
* <br>
|
||||||
|
* Testing {@link ICMakeProperties#getBuildType()} <br>
|
||||||
|
* <br>
|
||||||
|
* This test verify default build type is used in case:
|
||||||
|
* {@link ICMakeBuildConfiguration#CMAKE_USE_DEFAULT_CMAKE_SETTINGS} is <code>true<code>
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void getCMakePropertiesTestGetDefaultBuildType() {
|
||||||
|
// CMAKE_USE_DEFAULT_CMAKE_SETTINGS = "true"
|
||||||
|
CMakeBuildConfiguration cmBuildConfig;
|
||||||
|
ICMakeProperties cMakeProperties;
|
||||||
|
// Test for ILaunchManager.RUN_MODE
|
||||||
|
cmBuildConfig = new CMakeBuildConfiguration(buildConfig, "cmBuildConfigName", mockToolchain, null,
|
||||||
|
ILaunchManager.RUN_MODE, LOCAL_LAUNCH_TARGET);
|
||||||
|
cMakeProperties = cmBuildConfig.getCMakeProperties();
|
||||||
|
assertThat(cMakeProperties.getBuildType(), is("Release"));
|
||||||
|
|
||||||
|
// Test for ILaunchManager.DEBUG_MODE
|
||||||
|
cmBuildConfig = new CMakeBuildConfiguration(buildConfig, "cmBuildConfigName", mockToolchain, null,
|
||||||
|
ILaunchManager.DEBUG_MODE, LOCAL_LAUNCH_TARGET);
|
||||||
|
cMakeProperties = cmBuildConfig.getCMakeProperties();
|
||||||
|
assertThat(cMakeProperties.getBuildType(), is("Debug"));
|
||||||
|
|
||||||
|
// Test for ILaunchManager.PROFILE_MODE
|
||||||
|
cmBuildConfig = new CMakeBuildConfiguration(buildConfig, "cmBuildConfigName", mockToolchain, null,
|
||||||
|
ILaunchManager.PROFILE_MODE, LOCAL_LAUNCH_TARGET);
|
||||||
|
cMakeProperties = cmBuildConfig.getCMakeProperties();
|
||||||
|
assertThat(cMakeProperties.getBuildType(), is("Release"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test for IDE_82683_REQ_013 part of #1000
|
||||||
|
* <br>
|
||||||
|
* This test verify default build type is used in case:
|
||||||
|
* {@link ICMakeBuildConfiguration#CMAKE_USE_DEFAULT_CMAKE_SETTINGS} is <code>true<code>
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void getCMakePropertiesLoadISVSelectBuildType_UseDefaultBuildType_1() {
|
||||||
|
ICMakeProperties cMakeProperties;
|
||||||
|
CMakeBuildConfiguration cmBuildConfig = new CMakeBuildConfiguration(buildConfig, "cmBuildConfigName",
|
||||||
|
mockToolchain, null, ILaunchManager.RUN_MODE, LOCAL_LAUNCH_TARGET);
|
||||||
|
// Setup ISV properties for CMakeBuildConfiguration
|
||||||
|
// CMAKE_USE_DEFAULT_CMAKE_SETTINGS = "true"
|
||||||
|
// CMAKE_BUILD_TYPE = "RelWithDebInfo"
|
||||||
|
cmBuildConfig.removeProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE);
|
||||||
|
cmBuildConfig.setProperty(CMakeBuildConfiguration.CMAKE_USE_DEFAULT_CMAKE_SETTINGS, "true");
|
||||||
|
cmBuildConfig.setProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE, "RelWithDebInfo");
|
||||||
|
// Expected: default build type is used (in this case: "Release" for ILaunchManager.RUN_MODE)
|
||||||
|
cMakeProperties = cmBuildConfig.getCMakeProperties();
|
||||||
|
assertThat(cMakeProperties.getBuildType(), is("Release"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test for IDE_82683_REQ_013 part of #1000
|
||||||
|
* <br>
|
||||||
|
* This test verify default build type is used in case ISV build type is blank:
|
||||||
|
* {@link ICMakeBuildConfiguration#CMAKE_USE_DEFAULT_CMAKE_SETTINGS} is <code>false<code> and
|
||||||
|
* {@link ICMakeBuildConfiguration#CMAKE_BUILD_TYPE} is blank
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void getCMakePropertiesLoadISVSelectBuildType_ISVBuildTypeIsBlank() {
|
||||||
|
ICMakeProperties cMakeProperties;
|
||||||
|
CMakeBuildConfiguration cmBuildConfig = new CMakeBuildConfiguration(buildConfig, "cmBuildConfigName",
|
||||||
|
mockToolchain, null, ILaunchManager.RUN_MODE, LOCAL_LAUNCH_TARGET);
|
||||||
|
// Setup ISV properties for CMakeBuildConfiguration
|
||||||
|
// CMAKE_USE_DEFAULT_CMAKE_SETTINGS = "false"
|
||||||
|
// CMAKE_BUILD_TYPE = ""
|
||||||
|
cmBuildConfig.removeProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE);
|
||||||
|
cmBuildConfig.setProperty(CMakeBuildConfiguration.CMAKE_USE_DEFAULT_CMAKE_SETTINGS, "false");
|
||||||
|
cmBuildConfig.setProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE, "");
|
||||||
|
// Expected: "Release" build type is used (in this case: "Release" for ILaunchManager.RUN_MODE)
|
||||||
|
cMakeProperties = cmBuildConfig.getCMakeProperties();
|
||||||
|
assertThat(cMakeProperties.getBuildType(), is("Release"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test for IDE_82683_REQ_013 part of #1000
|
||||||
|
* <br>
|
||||||
|
* This test verify ISV's selected build type is used in case:
|
||||||
|
* {@link ICMakeBuildConfiguration#CMAKE_USE_DEFAULT_CMAKE_SETTINGS} is <code>false<code> and
|
||||||
|
* {@link ICMakeBuildConfiguration#CMAKE_BUILD_TYPE} is NOT blank
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void getCMakePropertiesLoadISVSelectBuildType_UseISVBuildTypeNotBlank() {
|
||||||
|
ICMakeProperties cMakeProperties;
|
||||||
|
CMakeBuildConfiguration cmBuildConfig = new CMakeBuildConfiguration(buildConfig, "cmBuildConfigName",
|
||||||
|
mockToolchain, null, ILaunchManager.RUN_MODE, LOCAL_LAUNCH_TARGET);
|
||||||
|
// Setup ISV properties for CMakeBuildConfiguration
|
||||||
|
// CMAKE_USE_DEFAULT_CMAKE_SETTINGS = "false"
|
||||||
|
// CMAKE_BUILD_TYPE = "RelWithDebInfo"
|
||||||
|
cmBuildConfig.removeProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE);
|
||||||
|
cmBuildConfig.setProperty(CMakeBuildConfiguration.CMAKE_USE_DEFAULT_CMAKE_SETTINGS, "false");
|
||||||
|
cmBuildConfig.setProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE, "RelWithDebInfo");
|
||||||
|
// Expected: "RelWithDebInfo" build type is used
|
||||||
|
cMakeProperties = cmBuildConfig.getCMakeProperties();
|
||||||
|
assertThat(cMakeProperties.getBuildType(), is("RelWithDebInfo"));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for {@link ICMakeProperties#setExtraArguments()}
|
* Test for {@link ICMakeProperties#setExtraArguments()}
|
||||||
*
|
*
|
||||||
|
|
|
@ -139,6 +139,12 @@ public class CMakeBuildConfiguration extends CBuildConfiguration implements ICMa
|
||||||
cmakeProperties.setAllTarget(allTarget);
|
cmakeProperties.setAllTarget(allTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String buildType = properties.get(CMAKE_BUILD_TYPE);
|
||||||
|
if (buildType == null || buildType.isBlank()) {
|
||||||
|
buildType = getDefaultProperties().get(CMAKE_BUILD_TYPE);
|
||||||
|
}
|
||||||
|
cmakeProperties.setBuildType(buildType);
|
||||||
|
|
||||||
return cmakeProperties;
|
return cmakeProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,13 +184,6 @@ public class CMakeBuildConfiguration extends CBuildConfiguration implements ICMa
|
||||||
|
|
||||||
runCMake |= !Files.exists(buildDir.resolve("CMakeCache.txt")); //$NON-NLS-1$
|
runCMake |= !Files.exists(buildDir.resolve("CMakeCache.txt")); //$NON-NLS-1$
|
||||||
|
|
||||||
// Causes CMAKE_BUILD_TYPE to be set according to the launch mode
|
|
||||||
if (ILaunchManager.DEBUG_MODE.equals(getLaunchMode())) {
|
|
||||||
cmakeProperties.setBuildType("Debug"); //$NON-NLS-1$
|
|
||||||
} else {
|
|
||||||
cmakeProperties.setBuildType("Release"); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!runCMake) {
|
if (!runCMake) {
|
||||||
ICMakeGenerator generator = cmakeProperties.getGenerator();
|
ICMakeGenerator generator = cmakeProperties.getGenerator();
|
||||||
String makefileName = generator.getMakefileName();
|
String makefileName = generator.getMakefileName();
|
||||||
|
@ -571,7 +570,8 @@ public class CMakeBuildConfiguration extends CBuildConfiguration implements ICMa
|
||||||
CMAKE_ARGUMENTS, CMAKE_ARGUMENTS_DEFAULT, //
|
CMAKE_ARGUMENTS, CMAKE_ARGUMENTS_DEFAULT, //
|
||||||
CMAKE_BUILD_COMMAND, CMAKE_BUILD_COMMAND_DEFAULT, //
|
CMAKE_BUILD_COMMAND, CMAKE_BUILD_COMMAND_DEFAULT, //
|
||||||
CMAKE_ALL_TARGET, CMAKE_ALL_TARGET_DEFAULT, //
|
CMAKE_ALL_TARGET, CMAKE_ALL_TARGET_DEFAULT, //
|
||||||
CMAKE_CLEAN_TARGET, CMAKE_CLEAN_TARGET_DEFAULT //
|
CMAKE_CLEAN_TARGET, CMAKE_CLEAN_TARGET_DEFAULT, //
|
||||||
|
CMAKE_BUILD_TYPE, ILaunchManager.DEBUG_MODE.equals(getLaunchMode()) ? "Debug" : "Release" //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,12 @@ public interface ICMakeBuildConfiguration {
|
||||||
public static final String CMAKE_CLEAN_TARGET = "cmake.target.clean"; //$NON-NLS-1$
|
public static final String CMAKE_CLEAN_TARGET = "cmake.target.clean"; //$NON-NLS-1$
|
||||||
public static final String CMAKE_CLEAN_TARGET_DEFAULT = "clean"; //$NON-NLS-1$
|
public static final String CMAKE_CLEAN_TARGET_DEFAULT = "clean"; //$NON-NLS-1$
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name of the build type set by user. Default of this value will be set based on Launch Mode
|
||||||
|
* (i.e. Debug for Debug launch mode, Release for Run and other launch modes)
|
||||||
|
*/
|
||||||
|
public static final String CMAKE_BUILD_TYPE = "cmake.build.type"; //$NON-NLS-1$
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts the {@link ICBuildConfiguration}'s properties, using the keys defined above
|
* Converts the {@link ICBuildConfiguration}'s properties, using the keys defined above
|
||||||
* into an {@link ICMakeProperties} that configures the CMake build processes.
|
* into an {@link ICMakeProperties} that configures the CMake build processes.
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.cmake.ui.internal;
|
package org.eclipse.cdt.cmake.ui.internal;
|
||||||
|
|
||||||
|
import java.text.MessageFormat;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -18,8 +19,11 @@ import org.eclipse.cdt.cmake.core.CMakeBuildConfigurationProvider;
|
||||||
import org.eclipse.cdt.cmake.core.properties.CMakeGenerator;
|
import org.eclipse.cdt.cmake.core.properties.CMakeGenerator;
|
||||||
import org.eclipse.cdt.core.build.ICBuildConfiguration;
|
import org.eclipse.cdt.core.build.ICBuildConfiguration;
|
||||||
import org.eclipse.cdt.launch.ui.corebuild.CommonBuildTab;
|
import org.eclipse.cdt.launch.ui.corebuild.CommonBuildTab;
|
||||||
|
import org.eclipse.debug.core.DebugPlugin;
|
||||||
import org.eclipse.debug.core.ILaunchConfiguration;
|
import org.eclipse.debug.core.ILaunchConfiguration;
|
||||||
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
|
||||||
|
import org.eclipse.debug.core.ILaunchManager;
|
||||||
|
import org.eclipse.debug.core.ILaunchMode;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
import org.eclipse.swt.events.SelectionAdapter;
|
import org.eclipse.swt.events.SelectionAdapter;
|
||||||
import org.eclipse.swt.events.SelectionEvent;
|
import org.eclipse.swt.events.SelectionEvent;
|
||||||
|
@ -35,6 +39,8 @@ import org.eclipse.swt.widgets.Text;
|
||||||
|
|
||||||
public class CMakeBuildTab extends CommonBuildTab {
|
public class CMakeBuildTab extends CommonBuildTab {
|
||||||
|
|
||||||
|
private static final String[] buildTypes = { "Debug", "Release", "RelWithDebInfo", "MinSizeRel" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
|
||||||
|
|
||||||
private Button useDefaultCmakeSettings;
|
private Button useDefaultCmakeSettings;
|
||||||
private Combo generatorCombo;
|
private Combo generatorCombo;
|
||||||
private Text cmakeArgsText;
|
private Text cmakeArgsText;
|
||||||
|
@ -46,6 +52,9 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
private Label buildCommandLabel;
|
private Label buildCommandLabel;
|
||||||
private Label allTargetLabel;
|
private Label allTargetLabel;
|
||||||
private Label cleanTargetLabel;
|
private Label cleanTargetLabel;
|
||||||
|
private Combo buildTypeCombo;
|
||||||
|
private Label buildTypeLabel;
|
||||||
|
private Label usedForLaunchModeLabel;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getBuildConfigProviderId() {
|
protected String getBuildConfigProviderId() {
|
||||||
|
@ -121,6 +130,25 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
cleanTargetText = new Text(cmakeGroup, SWT.BORDER);
|
cleanTargetText = new Text(cmakeGroup, SWT.BORDER);
|
||||||
cleanTargetText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
|
cleanTargetText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
|
||||||
cleanTargetText.addModifyListener(e -> updateLaunchConfigurationDialog());
|
cleanTargetText.addModifyListener(e -> updateLaunchConfigurationDialog());
|
||||||
|
|
||||||
|
Composite buildTypeComp = new Composite(cmakeGroup, SWT.NONE);
|
||||||
|
buildTypeComp.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
|
||||||
|
buildTypeComp.setLayout(new GridLayout(3, false));
|
||||||
|
|
||||||
|
buildTypeLabel = new Label(buildTypeComp, SWT.NONE);
|
||||||
|
buildTypeLabel.setText(Messages.CMakeBuildTab_BuildType);
|
||||||
|
buildTypeLabel.setToolTipText(Messages.CMakeBuildTab_BuildType_Tooltip);
|
||||||
|
|
||||||
|
buildTypeCombo = new Combo(buildTypeComp, SWT.DROP_DOWN);
|
||||||
|
buildTypeCombo.setItems(buildTypes);
|
||||||
|
buildTypeCombo.setToolTipText(Messages.CMakeBuildTab_BuildTypeCombo_Tooltip);
|
||||||
|
buildTypeCombo.addSelectionListener(new SelectionAdapter() {
|
||||||
|
@Override
|
||||||
|
public void widgetSelected(SelectionEvent e) {
|
||||||
|
updateLaunchConfigurationDialog();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
usedForLaunchModeLabel = new Label(buildTypeComp, SWT.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,6 +176,9 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
allTargetText.setEnabled(enabled);
|
allTargetText.setEnabled(enabled);
|
||||||
cleanTargetLabel.setEnabled(enabled);
|
cleanTargetLabel.setEnabled(enabled);
|
||||||
cleanTargetText.setEnabled(enabled);
|
cleanTargetText.setEnabled(enabled);
|
||||||
|
buildTypeLabel.setEnabled(enabled);
|
||||||
|
buildTypeCombo.setEnabled(enabled);
|
||||||
|
usedForLaunchModeLabel.setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -217,6 +248,13 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
boolean isDefaultCMakeProperties = useDefaultCmakeSettings.getSelection();
|
boolean isDefaultCMakeProperties = useDefaultCmakeSettings.getSelection();
|
||||||
buildConfig.setProperty(CMakeBuildConfiguration.CMAKE_USE_DEFAULT_CMAKE_SETTINGS,
|
buildConfig.setProperty(CMakeBuildConfiguration.CMAKE_USE_DEFAULT_CMAKE_SETTINGS,
|
||||||
Boolean.toString(isDefaultCMakeProperties));
|
Boolean.toString(isDefaultCMakeProperties));
|
||||||
|
|
||||||
|
String buildType = buildTypeCombo.getText().trim();
|
||||||
|
if (!(buildType.isBlank() || isDefaultCMakeProperties)) {
|
||||||
|
buildConfig.setProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE, buildType);
|
||||||
|
} else {
|
||||||
|
buildConfig.removeProperty(CMakeBuildConfiguration.CMAKE_BUILD_TYPE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -227,6 +265,7 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
properties.put(CMakeBuildConfiguration.CMAKE_BUILD_COMMAND, buildCommandText.getText().trim());
|
properties.put(CMakeBuildConfiguration.CMAKE_BUILD_COMMAND, buildCommandText.getText().trim());
|
||||||
properties.put(CMakeBuildConfiguration.CMAKE_ALL_TARGET, allTargetText.getText().trim());
|
properties.put(CMakeBuildConfiguration.CMAKE_ALL_TARGET, allTargetText.getText().trim());
|
||||||
properties.put(CMakeBuildConfiguration.CMAKE_CLEAN_TARGET, cleanTargetText.getText().trim());
|
properties.put(CMakeBuildConfiguration.CMAKE_CLEAN_TARGET, cleanTargetText.getText().trim());
|
||||||
|
properties.put(CMakeBuildConfiguration.CMAKE_BUILD_TYPE, buildTypeCombo.getText().trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -252,6 +291,16 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
String cleanTarget = properties.getOrDefault(CMakeBuildConfiguration.CMAKE_CLEAN_TARGET,
|
String cleanTarget = properties.getOrDefault(CMakeBuildConfiguration.CMAKE_CLEAN_TARGET,
|
||||||
CMakeBuildConfiguration.CMAKE_CLEAN_TARGET_DEFAULT);
|
CMakeBuildConfiguration.CMAKE_CLEAN_TARGET_DEFAULT);
|
||||||
cleanTargetText.setText(cleanTarget);
|
cleanTargetText.setText(cleanTarget);
|
||||||
|
|
||||||
|
// Default build type: Debug for Debug launch mode, Release for Run and other launch modes.
|
||||||
|
String defaultBuildType = getDefaultBuildType();
|
||||||
|
String buildType = properties.getOrDefault(CMakeBuildConfiguration.CMAKE_BUILD_TYPE, defaultBuildType);
|
||||||
|
buildTypeCombo.setText(buildType);
|
||||||
|
|
||||||
|
ILaunchMode launchMode = DebugPlugin.getDefault().getLaunchManager()
|
||||||
|
.getLaunchMode(getBuildConfiguration().getLaunchMode());
|
||||||
|
String launchModeLabel = launchMode != null ? launchMode.getLabel() : getBuildConfiguration().getLaunchMode();
|
||||||
|
usedForLaunchModeLabel.setText(MessageFormat.format(Messages.CMakeBuildTab_UsedForLaunchMode, launchModeLabel));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -259,4 +308,9 @@ public class CMakeBuildTab extends CommonBuildTab {
|
||||||
return Messages.CMakeBuildTab_Cmake;
|
return Messages.CMakeBuildTab_Cmake;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getDefaultBuildType() {
|
||||||
|
return ILaunchManager.DEBUG_MODE.equals(getBuildConfiguration().getLaunchMode()) ? buildTypes[0]
|
||||||
|
: buildTypes[1];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,9 @@ import org.eclipse.osgi.util.NLS;
|
||||||
public class Messages extends NLS {
|
public class Messages extends NLS {
|
||||||
|
|
||||||
public static String CMakeBuildTab_BuildCommand;
|
public static String CMakeBuildTab_BuildCommand;
|
||||||
|
public static String CMakeBuildTab_BuildType;
|
||||||
|
public static String CMakeBuildTab_BuildType_Tooltip;
|
||||||
|
public static String CMakeBuildTab_BuildTypeCombo_Tooltip;
|
||||||
public static String CMakeBuildTab_AllTarget;
|
public static String CMakeBuildTab_AllTarget;
|
||||||
public static String CMakeBuildTab_CleanTarget;
|
public static String CMakeBuildTab_CleanTarget;
|
||||||
public static String CMakeBuildTab_Cmake;
|
public static String CMakeBuildTab_Cmake;
|
||||||
|
@ -25,6 +28,7 @@ public class Messages extends NLS {
|
||||||
public static String CMakeBuildTab_Toolchain;
|
public static String CMakeBuildTab_Toolchain;
|
||||||
public static String CMakeBuildTab_useDefaultCmakeSettings;
|
public static String CMakeBuildTab_useDefaultCmakeSettings;
|
||||||
public static String CMakeBuildTab_useDefaultCmakeSettingsTip;
|
public static String CMakeBuildTab_useDefaultCmakeSettingsTip;
|
||||||
|
public static String CMakeBuildTab_UsedForLaunchMode;
|
||||||
public static String CMakePreferencePage_Add;
|
public static String CMakePreferencePage_Add;
|
||||||
public static String CMakePreferencePage_ConfirmRemoveDesc;
|
public static String CMakePreferencePage_ConfirmRemoveDesc;
|
||||||
public static String CMakePreferencePage_ConfirmRemoveTitle;
|
public static String CMakePreferencePage_ConfirmRemoveTitle;
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
CMakeBuildTab_BuildCommand=Build command
|
CMakeBuildTab_BuildCommand=Build command
|
||||||
|
CMakeBuildTab_BuildType=Build type:
|
||||||
|
CMakeBuildTab_BuildType_Tooltip=The build type (CMAKE_BUILD_TYPE) used by the generator.
|
||||||
|
CMakeBuildTab_BuildTypeCombo_Tooltip=Typical build types (CMAKE_BUILD_TYPE) are listed. A custom build type can be entered.
|
||||||
CMakeBuildTab_AllTarget=Build all target
|
CMakeBuildTab_AllTarget=Build all target
|
||||||
CMakeBuildTab_CleanTarget=Clean target
|
CMakeBuildTab_CleanTarget=Clean target
|
||||||
CMakeBuildTab_Cmake=CMake
|
CMakeBuildTab_Cmake=CMake
|
||||||
|
@ -9,6 +12,7 @@ CMakeBuildTab_Settings=CMake Settings
|
||||||
CMakeBuildTab_Toolchain=Toolchain
|
CMakeBuildTab_Toolchain=Toolchain
|
||||||
CMakeBuildTab_useDefaultCmakeSettings=Use default CMake settings
|
CMakeBuildTab_useDefaultCmakeSettings=Use default CMake settings
|
||||||
CMakeBuildTab_useDefaultCmakeSettingsTip=Use the default CMake settings that are provided by the toolchain and Core Build System
|
CMakeBuildTab_useDefaultCmakeSettingsTip=Use the default CMake settings that are provided by the toolchain and Core Build System
|
||||||
|
CMakeBuildTab_UsedForLaunchMode=used for launch mode: {0}
|
||||||
CMakePreferencePage_Add=Add...
|
CMakePreferencePage_Add=Add...
|
||||||
CMakePreferencePage_ConfirmRemoveDesc=Do you wish to deregister the selected files?
|
CMakePreferencePage_ConfirmRemoveDesc=Do you wish to deregister the selected files?
|
||||||
CMakePreferencePage_ConfirmRemoveTitle=Deregister CMake ToolChain File
|
CMakePreferencePage_ConfirmRemoveTitle=Deregister CMake ToolChain File
|
||||||
|
|
Loading…
Add table
Reference in a new issue