/******************************************************************************* * Copyright (c) 2006 Intel Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Intel Corporation - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.managedbuilder.makegen; /** * @since 3.1 * * IManagedDependencyGenerator (deprecated) and IManagedDependencyGenerator2 * extend this interface. * * Discussion of Dependency Calculation: * * There are two major, and multiple minor, modes of dependency calculation * supported by the MBS. The major modes are: * * 1. The build file generator invokes tool integrator provided methods * that calculate all dependencies using whatever method the tool * integrator wants. The build file generator then adds the dependencies * to the build file using the appropriate build file syntax. * This is a TYPE_CUSTOM dependency calculator as defined below. * See the IManagedDependencyCalculator interface for more information. * * 2. The build file generator and the tool-chain cooperate in creating and * using separate "dependency" files. In this case, dependency calculation * is done at "build time", rather than at "build file generation time" as * in mode #1. This currently supports the GNU concept of using .d files * in GNU make. * This is either a TYPE_BUILD_COMMANDS dependency calculator or a * TYPE_PREBUILD_COMMANDS dependency calculator as defined below. * See the IManagedDependencyCommands and IManagedDependencyPreBuild * interfaces for more information. * */ public interface IManagedDependencyGeneratorType { /** * Constants returned by getCalculatorType */ public int TYPE_NODEPS = 0; // Deprecated - use TYPE_NODEPENDENCIES public int TYPE_COMMAND = 1; // Deprecated - use TYPE_BUILD_COMMANDS public int TYPE_INDEXER = 2; // Deprecated - use TYPE_CUSTOM public int TYPE_EXTERNAL = 3; // Deprecated - use TYPE_CUSTOM public int TYPE_OLD_TYPE_LIMIT = 3; // Use these types public int TYPE_NODEPENDENCIES = 4; public int TYPE_BUILD_COMMANDS = 5; public int TYPE_PREBUILD_COMMANDS = 6; public int TYPE_CUSTOM = 7; /** * Returns the type of dependency generator that is implemented. * * TYPE_NODEPENDENCIES indicates that no dependency generator is * supplied or needed. * TYPE_CUSTOM indicates that a custom, "build file generation time" * dependency calculator is implemented. Note that the dependency * calculator will be called when the makefile is generated, and * for every source file that is built by this tool in the build * file, not just for those that have changed since the last build * file generation. * TYPE_BUILD_COMMANDS indicates that command lines or options will * be returned to be used to calculate dependencies. These * commands/options are added to the build file to perform dependency * calculation at "build time". This currently supports * compilers/tools that generate .d files either as a * side-effect of tool invocation, or as a separate step that is * invoked immediately before or after the tool invocation. * TYPE_PREBUILD_COMMANDS indicates that a separate build step is * invoked, prior to the the normal build steps, to update the * dependency information. These commands are added to the build * file to perform dependency calculation at "build time". Note * that this step will be invoked every time a build is done in * order to determine if dependency files need to be re-generated. * * @return int */ public int getCalculatorType(); }