private ExitCode compile(final CompileContext context, ModuleChunk chunk, Collection<File> files, Collection<File> forms) throws Exception {
if (files.isEmpty() && forms.isEmpty()) {
return ExitCode.OK;
}
ProjectPaths paths = ProjectPaths.KEY.get(context);
if (paths == null) {
ProjectPaths.KEY.set(context, paths = new ProjectPaths(context.getProject()));
}
final Collection<File> classpath = paths.getCompilationClasspath(chunk, context.isCompilingTests(), !context.isMake());
final Collection<File> platformCp = paths.getPlatformCompilationClasspath(chunk, context.isCompilingTests(), !context.isMake());
final Map<File, Set<File>> outs = buildOutputDirectoriesMap(context, chunk);
final List<String> options = getCompilationOptions(context, chunk);
final TimestampStorage tsStorage = context.getBuildDataManager().getTimestampStorage(BUILDER_NAME);