package io.sloeber.core.toolchain; import org.eclipse.cdt.managedbuilder.core.IBuildObject; import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.ITool; import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator; import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2; import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyInfo; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; public class ArduinoDependencyCalculator implements IManagedDependencyGenerator2 { /* * (non-Javadoc) * * @see org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGeneratorType #getCalculatorType() */ @Override public int getCalculatorType() { return TYPE_BUILD_COMMANDS; } /* * (non-Javadoc) * * @see org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2# getDependencyFileExtension * (org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.core.ITool) */ @Override public String getDependencyFileExtension(IConfiguration buildContext, ITool tool) { return IManagedBuilderMakefileGenerator.DEP_EXT; } /* * (non-Javadoc) * * @see org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2# getDependencySourceInfo(org.eclipse.core.runtime.IPath, * org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.ITool, org.eclipse.core.runtime.IPath) */ @Override public IManagedDependencyInfo getDependencySourceInfo(IPath source, IResource resource, IBuildObject buildContext, ITool tool, IPath topBuildDirectory) { return new ArduinoDependencyCalculatorCommands(source, resource, buildContext, tool, topBuildDirectory); } /* * (non-Javadoc) * * @see org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2# getDependencySourceInfo(org.eclipse.core.runtime.IPath, * org.eclipse.cdt.managedbuilder.core.IBuildObject, org.eclipse.cdt.managedbuilder.core.ITool, org.eclipse.core.runtime.IPath) */ @Override public IManagedDependencyInfo getDependencySourceInfo(IPath source, IBuildObject buildContext, ITool tool, IPath topBuildDirectory) { return new ArduinoDependencyCalculatorCommands(source, buildContext, tool, topBuildDirectory); } /* * (non-Javadoc) * * @see org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator2# postProcessDependencyFile(org.eclipse.core.runtime.IPath, * org.eclipse.cdt.managedbuilder.core.IConfiguration, org.eclipse.cdt.managedbuilder.core.ITool, org.eclipse.core.runtime.IPath) */ @Override public boolean postProcessDependencyFile(IPath dependencyFile, IConfiguration buildContext, ITool tool, IPath topBuildDirectory) { // Nothing return false; } }