From fc919d81b68f1d474c0b564d157b7acc16e2b0fc 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 01c05fd9479..0ac2ec3976f 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 @@ -337,7 +337,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); @@ -395,6 +396,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">