mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-08 02:06:01 +02:00
Bug 269023 URI support added to EPM, add MakeBuilderUtil#getBuildDirectoryURI(...)
This commit is contained in:
parent
892018205d
commit
9953f12da4
2 changed files with 23 additions and 1 deletions
|
@ -13,6 +13,7 @@ package org.eclipse.cdt.make.core;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.net.URI;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
@ -148,6 +149,7 @@ public class MakeBuilder extends ACBuilder {
|
||||||
removeAllMarkers(currProject);
|
removeAllMarkers(currProject);
|
||||||
|
|
||||||
IPath workingDirectory = MakeBuilderUtil.getBuildDirectory(currProject, info);
|
IPath workingDirectory = MakeBuilderUtil.getBuildDirectory(currProject, info);
|
||||||
|
URI workingDirectoryURI = MakeBuilderUtil.getBuildDirectoryURI(currProject, info);
|
||||||
|
|
||||||
String[] targets = getTargets(kind, info);
|
String[] targets = getTargets(kind, info);
|
||||||
if (targets.length != 0 && targets[targets.length - 1].equals(info.getCleanBuildTarget()))
|
if (targets.length != 0 && targets[targets.length - 1].equals(info.getCleanBuildTarget()))
|
||||||
|
@ -200,7 +202,7 @@ public class MakeBuilder extends ACBuilder {
|
||||||
last = new Integer(100);
|
last = new Integer(100);
|
||||||
}
|
}
|
||||||
StreamMonitor streamMon = new StreamMonitor(new SubProgressMonitor(monitor, 100), cos, last.intValue());
|
StreamMonitor streamMon = new StreamMonitor(new SubProgressMonitor(monitor, 100), cos, last.intValue());
|
||||||
ErrorParserManager epm = new ErrorParserManager(getProject(), workingDirectory, this, info.getErrorParsers());
|
ErrorParserManager epm = new ErrorParserManager(getProject(), workingDirectoryURI, this, info.getErrorParsers());
|
||||||
epm.setOutputStream(streamMon);
|
epm.setOutputStream(streamMon);
|
||||||
OutputStream stdout = epm.getOutputStream();
|
OutputStream stdout = epm.getOutputStream();
|
||||||
OutputStream stderr = epm.getOutputStream();
|
OutputStream stderr = epm.getOutputStream();
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.make.core;
|
package org.eclipse.cdt.make.core;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
import org.eclipse.core.resources.IContainer;
|
import org.eclipse.core.resources.IContainer;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
import org.eclipse.core.resources.IResource;
|
import org.eclipse.core.resources.IResource;
|
||||||
|
@ -46,4 +48,22 @@ public class MakeBuilderUtil {
|
||||||
}
|
}
|
||||||
return buildDirectory;
|
return buildDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the URI of the build directory for a prject and IMakeBuilderInfo
|
||||||
|
* @param project
|
||||||
|
* @param info
|
||||||
|
* @return URI of the build directory, or the Project's URI if one couldn't be found
|
||||||
|
* @since 6.0
|
||||||
|
*/
|
||||||
|
public static URI getBuildDirectoryURI(IProject project, IMakeBuilderInfo info) {
|
||||||
|
IPath buildDirectory = info.getBuildLocation();
|
||||||
|
if (!buildDirectory.isEmpty()) {
|
||||||
|
IResource res = project.getParent().findMember(buildDirectory);
|
||||||
|
if (res instanceof IContainer && res.exists()) {
|
||||||
|
return res.getLocationURI();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return project.getLocationURI();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue