Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Swanson2003-07-21 17:35:02 +0000
committerDarin Swanson2003-07-21 17:35:02 +0000
commit28cbdd2ba852382547c719872acb4ef15ea94773 (patch)
treee740588b75429f7bbe7523772548c8a41df26788 /org.eclipse.ui.externaltools
parentc37081ae05cd357f5421aaf41abad966865c5711 (diff)
downloadeclipse.platform.debug-28cbdd2ba852382547c719872acb4ef15ea94773.tar.gz
eclipse.platform.debug-28cbdd2ba852382547c719872acb4ef15ea94773.tar.xz
eclipse.platform.debug-28cbdd2ba852382547c719872acb4ef15ea94773.zip
Bug 40490 - Scoped external tool builder not triggered if change in different project
Diffstat (limited to 'org.eclipse.ui.externaltools')
-rw-r--r--org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
index 4895134ee..4aedf95ff 100644
--- a/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
+++ b/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
@@ -45,6 +45,8 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
private static String buildType = IExternalToolConstants.BUILD_TYPE_NONE;
+ private IProject[] projectsWithinScope= null;
+
private boolean buildKindCompatible(int kind, ILaunchConfiguration config) throws CoreException {
int[] buildKinds = buildTypesToArray(config.getAttribute(IExternalToolConstants.ATTR_RUN_BUILD_KINDS, "")); //$NON-NLS-1$
for (int j = 0; j < buildKinds.length; j++) {
@@ -58,13 +60,13 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
/* (non-Javadoc)
* Method declared on IncrementalProjectBuilder.
*/
- protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
+ protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
if (kind == FULL_BUILD) {
ILaunchConfiguration config = ExternalToolsUtil.configFromBuildCommandArgs(args);
if (config != null && buildKindCompatible(kind, config)) {
launchBuild(kind, config, monitor);
}
- return null;
+ return projectsWithinScope;
}
//need to build all external tools from one builder (see bug 39713)
@@ -78,13 +80,18 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
}
}
}
- return null;
+ return projectsWithinScope;
}
private void doBuild(int kind, ILaunchConfiguration config, IProgressMonitor monitor) throws CoreException {
boolean buildForChange = true;
IResource[] resources = ExternalToolsUtil.getResourcesForBuildScope(config, monitor);
if (resources != null && resources.length > 0) {
+ projectsWithinScope= new IProject[resources.length];
+ for (int i = 0; i < resources.length; i++) {
+ IResource resource = resources[i];
+ projectsWithinScope[i]= resource.getProject();
+ }
buildForChange = buildScopeIndicatesBuild(resources);
}
@@ -140,7 +147,7 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
private boolean buildScopeIndicatesBuild(IResource[] resources) {
for (int i = 0; i < resources.length; i++) {
- IResourceDelta delta = getDelta(resources[i].getProject());
+ IResourceDelta delta = getDelta(projectsWithinScope[i]);
if (delta == null) {
//project just added to the workspace..no previous build tree
return true;

Back to the top