xsbti.compile.Setup Maven / Gradle / Ivy
package xsbti.compile;
import java.io.File;
import java.util.Map;
import xsbti.Maybe;
import xsbti.Reporter;
/** Configures incremental recompilation. */
public interface Setup
{
/** Provides the Analysis for the given classpath entry.*/
Maybe analysisMap(File file);
/** Provides a function to determine if classpath entry `file` contains a given class.
* The returned function should generally cache information about `file`, such as the list of entries in a jar.
*/
DefinesClass definesClass(File file);
/** If true, no sources are actually compiled and the Analysis from the previous compilation is returned.*/
boolean skip();
/** The file used to cache information across compilations.
* This file can be removed to force a full recompilation.
* The file should be unique and not shared between compilations. */
File cacheFile();
GlobalsCache cache();
/** If returned, the progress that should be used to report scala compilation to. */
Maybe progress();
/** The reporter that should be used to report scala compilation to. */
Reporter reporter();
/**
* Returns incremental compiler options.
*
* @see sbt.inc.IncOptions for details
*
* You can get default options by calling sbt.inc.IncOptions.toStringMap(sbt.inc.IncOptions.Default)
.
*
* In the future, we'll extend API in xsbti
to provide factory methods that would allow to obtain
* defaults values so one can depend on xsbti
package only.
**/
Map incrementalCompilerOptions();
}