From a7c7a6f3b77b1e021b3bd1f65ba930cecb2c3f47 Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Tue, 22 Nov 2011 19:34:55 -0500 Subject: [PATCH] Bug 210248 - [Internal Builder]does not rebuild a dependent project in case of a reference library project change - fixed external builder --- .../managedbuilder/internal/core/AdditionalInput.java | 10 +++++++++- build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml | 10 +++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java index 89d8fed340c..faf43b47203 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java @@ -330,7 +330,8 @@ public class AdditionalInput implements IAdditionalInput { if (fRebuildState) return fRebuildState; if (fKind.intValue() == IAdditionalInput.KIND_ADDITIONAL_DEPENDENCY - || fKind.intValue() == IAdditionalInput.KIND_ADDITIONAL_INPUT_DEPENDENCY) { + || fKind.intValue() == IAdditionalInput.KIND_ADDITIONAL_INPUT_DEPENDENCY + || isLibrariesInput()) { IToolChain toolChain = getToolChain(); if (!toolChain.isExtensionElement()) { long artifactTimeStamp = getArtifactTimeStamp(toolChain); @@ -388,6 +389,13 @@ public class AdditionalInput implements IAdditionalInput { return 0; } + private boolean isLibrariesInput() { + // libraries are of the "additionalinput" kind, not "additionalinputdependency" because otherwise the + // external make builder would generate makefiles with $(LIBS) in the dependency list, resulting in + // failure to build dependency -lxyz etc. + return (fKind.intValue() == IAdditionalInput.KIND_ADDITIONAL_INPUT && Arrays.asList(getPaths()).contains("$(LIBS)")); //$NON-NLS-1$ + } + private boolean dependencyChanged(String sPath, long artefactTimeStamp) { try { IToolChain toolChain = getToolChain(); diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml index 3fce76a186d..ddc4c317689 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml @@ -176,7 +176,7 @@ + kind="additionalinput"> + kind="additionalinput"> + kind="additionalinput"> + kind="additionalinput"> + kind="additionalinput">