in src/org/jetbrains/ether/ProjectWrapper.java [860:888]
private ProjectWrapper(final GantBinding binding, final String prjDir, final String setupScript, final Map<String, String> pathVariables, final boolean loadHistory) {
dependencyMapping = new Mappings(this);
backendCallback = dependencyMapping.getCallback();
affectedFiles = new HashSet<StringCache.S>();
myProject = new GantBasedProject(binding == null ? new GantBinding() : binding);
myProjectBuilder = myProject.getBuilder();
final File prjFile = new File(prjDir);
final boolean dirBased = !(prjFile.isFile() && prjDir.endsWith(".ipr"));
myRoot = dirBased ? getCanonicalPath(prjDir) : getCanonicalPath(prjFile.getParent());
final String loadPath = dirBased ? getAbsolutePath(myIDEADir) : prjDir;
myProjectSnapshot = myHomeDir + File.separator + myJPSDir + File.separator + myRoot.replace(File.separatorChar, myFileSeparatorReplacement);
IdeaProjectLoader.loadFromPath(myProject, loadPath, pathVariables != null ? pathVariables : Collections.<String, String>emptyMap(), setupScript);
for (Module m : myProject.getModules().values()) {
myModules.put(m.getName(), new ModuleWrapper(m));
}
for (Library l : myProject.getLibraries().values()) {
myLibraries.put(l.getName(), new LibraryWrapper(l));
}
myHistory = loadHistory ? loadSnapshot(dependencyMapping, affectedFiles) : null;
}