diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java index dc3d5bb4419..d800377b861 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/DefaultGCCDependencyCalculator3.java @@ -97,12 +97,21 @@ public class DefaultGCCDependencyCalculator3 implements IManagedDependencyGenera makefile = root.getFile(makefilePath); IResourceInfo rcInfo = tool.getParentResourceInfo(); if (rcInfo != null) - return GnuMakefileGenerator.populateDummyTargets(rcInfo, makefile, false); - return GnuMakefileGenerator.populateDummyTargets(buildContext, makefile, false); + return createMakefileGenerator().generateDummyTargets(rcInfo, makefile, false); + return createMakefileGenerator().generateDummyTargets(buildContext, makefile, false); } catch (CoreException e) { } catch (IOException e) { } return false; } + /** + * Return a GnuMakefileGenerator instance to use during post processing of dependency files + * @return an GnuMakefileGenerator instance + * @since 9.3 + */ + protected GnuMakefileGenerator createMakefileGenerator() { + return new GnuMakefileGenerator(); + } + } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java index 0975ea60dce..9627354693d 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/makegen/gnu/GnuMakefileGenerator.java @@ -106,6 +106,9 @@ import org.eclipse.core.runtime.SubProgressMonitor; /** * This is a specialized makefile generator that takes advantage of the * extensions present in Gnu Make. + *
+ * If sub-classing and using {@link DefaultGCCDependencyCalculator3}, make sure to also override
+ * {@link DefaultGCCDependencyCalculator3#createMakefileGenerator()} to return the appropriate result.
*
* @since 1.2
* @noinstantiate This class is not intended to be instantiated by clients.
@@ -3482,6 +3485,15 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
return h.outputExtensionsSet;
}
+ /**
+ * @deprecated Use {@link GnuMakefileGenerator#generateDummyTargets(IConfiguration, IFile, boolean)}
+ */
+ @Deprecated
+ static public boolean populateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
+ throws CoreException, IOException {
+ return new GnuMakefileGenerator().generateDummyTargets(cfg, makefile, force);
+ }
+
/**
* This method postprocesses a .d file created by a build.
* It's main job is to add dummy targets for the header files dependencies.
@@ -3495,14 +3507,27 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
* checks for to determine if this dependency file has already been updated.
*
* @return a
See Bug 573502.
+ The implementation for generating the header in the make resources was changed. The following
+ APIs will be removed, listed with their (non-static) replacement.
+
+ See Bug 573722.
+ true
if the dependency file is modified
+ * @since 9.3
*/
- static public boolean populateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
+ public boolean generateDummyTargets(IConfiguration cfg, IFile makefile, boolean force)
throws CoreException, IOException {
- return populateDummyTargets(cfg.getRootFolderInfo(), makefile, force);
+ return generateDummyTargets(cfg.getRootFolderInfo(), makefile, force);
}
+ /**
+ * @deprecated Use {@link GnuMakefileGenerator#generateDummyTargets(IResourceInfo, IFile, boolean)}
+ */
+ @Deprecated
static public boolean populateDummyTargets(IResourceInfo rcInfo, IFile makefile, boolean force)
throws CoreException, IOException {
+ return new GnuMakefileGenerator().generateDummyTargets(rcInfo, makefile, force);
+ }
+
+ /**
+ * @since 9.3
+ */
+ public boolean generateDummyTargets(IResourceInfo rcInfo, IFile makefile, boolean force)
+ throws CoreException, IOException {
if (makefile == null || !makefile.exists())
return false;
@@ -3695,22 +3720,38 @@ public class GnuMakefileGenerator implements IManagedBuilderMakefileGenerator2 {
static public String ECHO_BLANK_LINE = ECHO + WHITESPACE + SINGLE_QUOTE + WHITESPACE + SINGLE_QUOTE + NEWLINE;
+ /**
+ * @deprecated Use {@link GnuMakefileGenerator#addGenericHeader()}
+ */
+ @Deprecated
+ static protected StringBuffer addDefaultHeader() {
+ return new GnuMakefileGenerator().addGenericHeader();
+ }
+
/**
* Outputs a comment formatted as follows:
* ##### ....... #####
* #
@@ -453,6 +454,23 @@
4. Changed methods from static to non-static
+
+
+