Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/StandardBuildConfiguration.java')
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/StandardBuildConfiguration.java41
1 files changed, 36 insertions, 5 deletions
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/StandardBuildConfiguration.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/StandardBuildConfiguration.java
index 01d6e4651c5..3919f34371b 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/StandardBuildConfiguration.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/StandardBuildConfiguration.java
@@ -47,6 +47,14 @@ public class StandardBuildConfiguration extends CBuildConfiguration {
* @since 6.4
*/
public static final String BUILD_CONTAINER = "stdbuild.build.container"; //$NON-NLS-1$
+ /**
+ * @since 6.4
+ */
+ public static final String BUILD_COMMAND = "stdbuild.build.command"; //$NON-NLS-1$
+ /**
+ * @since 6.4
+ */
+ public static final String CLEAN_COMMAND = "stdbuild.clean.command"; //$NON-NLS-1$
private String[] buildCommand;
private String[] cleanCommand;
@@ -54,6 +62,15 @@ public class StandardBuildConfiguration extends CBuildConfiguration {
public StandardBuildConfiguration(IBuildConfiguration config, String name) throws CoreException {
super(config, name);
+ applyProperties();
+ }
+
+ public StandardBuildConfiguration(IBuildConfiguration config, String name, IToolChain toolChain,
+ String launchMode) {
+ super(config, name, toolChain);
+ }
+
+ private void applyProperties() {
String container = getProperty(BUILD_CONTAINER);
if (container != null && !container.trim().isEmpty()) {
IPath containerLoc = new org.eclipse.core.runtime.Path(container);
@@ -63,11 +80,16 @@ public class StandardBuildConfiguration extends CBuildConfiguration {
buildContainer = ResourcesPlugin.getWorkspace().getRoot().getFolder(containerLoc);
}
}
- }
- public StandardBuildConfiguration(IBuildConfiguration config, String name, IToolChain toolChain,
- String launchMode) {
- super(config, name, toolChain);
+ String buildCmd = getProperty(BUILD_COMMAND);
+ if (buildCmd != null && !buildCmd.trim().isEmpty()) {
+ buildCommand = buildCmd.split(" "); //$NON-NLS-1$
+ }
+
+ String cleanCmd = getProperty(CLEAN_COMMAND);
+ if (cleanCmd != null && !cleanCmd.trim().isEmpty()) {
+ cleanCommand = cleanCmd.split(" "); //$NON-NLS-1$
+ }
}
public void setBuildContainer(IContainer buildContainer) {
@@ -77,6 +99,7 @@ public class StandardBuildConfiguration extends CBuildConfiguration {
public void setBuildCommand(String[] buildCommand) {
this.buildCommand = buildCommand;
+ setProperty(BUILD_COMMAND, String.join(" ", buildCommand)); //$NON-NLS-1$
}
public void setCleanCommand(String[] cleanCommand) {
@@ -133,6 +156,15 @@ public class StandardBuildConfiguration extends CBuildConfiguration {
}
@Override
+ public boolean setProperties(Map<String, String> properties) {
+ if (!super.setProperties(properties)) {
+ return false;
+ }
+ applyProperties();
+ return true;
+ }
+
+ @Override
public IProject[] build(int kind, Map<String, String> args, IConsole console, IProgressMonitor monitor)
throws CoreException {
IProject project = getProject();
@@ -153,7 +185,6 @@ public class StandardBuildConfiguration extends CBuildConfiguration {
} else {
command = new ArrayList<>();
command.add(findCommand("make").toString()); //$NON-NLS-1$
- command.add("-j"); //$NON-NLS-1$
if (!getBuildContainer().equals(getProject())) {
Path makefile = Paths.get(getProject().getFile("Makefile").getLocationURI()); //$NON-NLS-1$
Path relative = getBuildDirectory().relativize(makefile);

Back to the top